插入排序:
1)直接插入排序:
理解:假设有n个数需要排序,则第一个数已经排序,剩下的n-1个数没有排序,现在需要将剩下的n-1个数,一个一个找到合适的位置插入进去。
第一趟排序结束:得到已经排序的数字的个数是2,再加上剩下的n-2个数字
例如:待排序序列(49,38,65,97,76,13,27,49),第一趟排序结束(38 49 65 97 76 13 27 49 )
直接插入排序实现java代码如下:
private static void ZSort(int a[]) {
// TODO Auto-generated method stub
/*
* 直接插入排序算法 第一个元素已经排序,剩下n-1个没有排序, 一个一个比较
* 第一轮循环,执行n-1次
* 第二轮循环,当比他大后移,否则break
*/
for (int i = 1; i < a.length; ++i) {
int temp = a[i];
int j = i - 1;
for (; j >= 0; j--) {
if (temp < a[j]) {
a[j + 1] = a[j];
} else {
break;
}
}
a[j + 1] = temp;
}
}
public static void main(String[] args) {
int a[] = { 49, 38, 65, 97, 76, 13, 27, 49 };
ZSort(a);
for (int i : a) {
System.out.print(i + " ");
}
}
(欢迎指正!再更新其他算法)