插入排序
插入排序
概述:
设定起始值与前面的成员进行比较,大值向后移动,最后将起始值放在大值前面。然后将后一位作为新的起始值,重复以上步骤,直到从小到大排序。
场景分析:
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;
}
}
}