基本思路:
将排序数列分为两部分,即已经成序列和等待排序列;每次从剩余n-1个数当中,取出数与成序列从后向前进行比较,根据排序规则(若从小到大),将取出的数与较大数边比较向后移,直到找到符合位置,则继续新的一轮比较排序。
举例说明:
代码实现:
import java.util.Arrays;
public class InsertSort {
public static void insertSort(int[] a) {
int i , j, key;//要插入的数据
for(j=1; j < a.length; j++) {//控制新一轮进行插入,要比较的数
key = a[j];
i = j - 1;
while( i >= 0 && key < a[i]) {//控制、比较插入的位置
a[i+1] = a[i];
i--;
}
a[i+1] = key;
}
}
public static void main(String[] args) {
int a[] = {42,38,57,69,13,27,49};//待排序的数组
insertSort(a);
System.out.println(Arrays.toString(a));//进行打印
}
}
运行结果:
这部分到此结束,谢谢!