1.插入排序
2018-08-15 本文已影响5人
eagleif
插入算法如下:
public static void main(String[] args) {
int[] array = new int[] {9,8,7,6,5,4,3,2,1,0,-1};
//第一次循环的时候只取数组的第一个数,那么已经是排好序的
for (int j = 1; j < array.length; j++) {
int key = array[j];
int i = j - 1;
while (i >= 0 && array[i] > key) {
//在j之前的位置的元素大于要插入的元素
array[i + 1] = array[i];
i = i - 1;
}
array[i + 1] = key;
}
System.out.println(Arrays.toString(array));
}
- 只有一个元素的数组,那么是有顺序的,所以从1开始循环遍历
- 第二从循环中,如果插入的元素小于前面的数,那么需要将插入的元素放在这个元素之前 这就相当于打扑克牌的时候,最开始摸一张牌,然后摸第二张牌,如果第二张大于第一张,那么第二张放在第一个位置,否则放在第二个位置;以此类推。