美文网首页
插入排序

插入排序

作者: 灵魂歌手麦克李 | 来源:发表于2018-12-14 13:23 被阅读0次

    插入排序

    概述:

    设定起始值与前面的成员进行比较,大值向后移动,最后将起始值放在大值前面。然后将后一位作为新的起始值,重复以上步骤,直到从小到大排序。

    场景分析:

    4,2,5,1,3

    第一轮

    设定起始值与前面的成员进行比较,

    ↓ 

    4,

        2,5,1,3

    4,2,5,1,3   

    第二轮

        设定起始值与前面的成员进行比较,

        ↓

        2,

    4,    5,1,3

    ↑ 

    大值向后移动,

    最后将起始值放在大值前面。

    2,4,5,1,3 

    第三轮

    将后一位作为新的起始值,

        ↓

        5,

    2,4, 1,3

    2,4,5,1,3

    第四轮

    重复以上步骤,

      1,

    2,4,5,      3

    2,4,1,5,3

    2,1,4,5,3

    1,2,4,5,3

    1,2,4,5,3

    第五轮

    重复以上步骤,

    3

    1,2,4,5,

    1,2,4,3,5

    直到从小到大排序。

    1,2,3,4,5

    JAVA实现:

    package Sorts;

    public class InsertSort {

            public static void main(String[] args) {

                int[] array = {5,4,3,2,1};

                insertSort(array);

                for (int i = 0; i < array.length; i++) {

                        System.out.println(array[i] + ",");

                }

            }

            public static void insertSort(int[] array) {

                    int length = array.length;

                    int temp = 0;

                    int y = 0;

                    for (int i = 0; i < length; i++) {

                            //设定起始值

                            temp = array[i];

                            //与前面的成员比较大小

                        for ( y = i; y > 0 && array[y - 1] > temp; y--) {

                            //大值向后移动

                            array[y] = array[y - 1];

                        }

                         //最后将起始值放在大值前面

                          array[y] = temp;

                    }

            }

    }

    相关文章

      网友评论

          本文标题:插入排序

          本文链接:https://www.haomeiwen.com/subject/gwgwhqtx.html