插入排序
1.基本思想
直接插入排序算法的基本操作时将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加1的有序表。
2.代码实现
/*
* 插入排序基本思想
* 将n个元素的数列分为已有序和无序两个部分,如插入排序过程示例下所示:
* {{a1},{a2,a3,a4,…,an}}
* {{a1⑴,a2⑴},{a3⑴,a4⑴ …,an⑴}}
* {{a1(n-1),a2(n-1) ,…},{an(n-1)}}
* 每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,
* 找出插入位置,将该元素插入到有序数列的合适位置中。
*/
public class InsertSort {
public static void sort(int[] data) {
for(int i = 1;i < data.length;i++) {
//将无序序列的第一个元素与有序序列的元素从后向前逐个比较
for(int j = i;(j > 0) && (data[j] < data[j - 1]); j--) {
int temp = data[j - 1];
data[j -1] = data[j];
data[j] = temp;
}
}
}
}