插入排序

2018-12-14  本文已影响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;

                }

        }

}

上一篇下一篇

猜你喜欢

热点阅读