基本思想
在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。
代码
public class ZhiJieChaRu {
public static void main(String[] args) {
int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
int temp; //当前位的值
int j;
for (int i = 1; i < a.length; i++) {
temp = a[i];
j = i - 1;
//如果temp小于前一位,前一位的值赋给当前位置,在用temp向前依次比较
for (; j >= 0 && temp < a[j]; j--) {
a[j + 1] = a[j];
}
//j+1为temp的最终所在位置
a[j + 1] = temp;
}
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}