算法:排序----直接插入排序(Java)
public static void insertionSort(int[] arr) {int len = arr.length;// 初始是从第二个元素开始的,因为默认第一个元素是已经排好序的for (int i = 1; i < len; i++) {int temp = arr[i]; //抽出待插入的元素,在下面的while循环中此值是不能变的int j = i; //记录待插入的元素对应的索引。此索引要从后向前逐一对比。如果前一个元素大于待插的,那么将向移动一位while (j > 0 && (arr[j - 1] > temp)) {arr[j] = arr[j - 1]; //向后移动一位j--; //同时索引向前减一} //一直到第一个元素或者遇到小于待插入的元素时,跳出while循环,此时j便是待插入的元素的位置索引arr[j] = temp; }}
学习资料:
http://blog.chinaunix.net/uid-7377577-id-2641991.html
http://student.zjzk.cn/course_ware/data_structure/web/paixu/paixu8.2.1.1.htm
http://www.cnblogs.com/kkun/archive/2011/11/23/2260265.html