[java]代码库
/**
插入排序是这样实现的:
首先新建一个空列表,用于保存已排序的有序数列(我们称之为"有序列表")。
从原数列中取出一个数,将其插入"有序列表"中,使其仍旧保持有序状态。
重复2号步骤,直至原数列为空。
*/
public class TestInsertionSort {
public static void main(String[] args) {
int[] arr = {3,4,9,7,1,2};
System.out.println("The unsorted order arrays is : "+Arrays.toString(arr));
System.out.println("The sorted order arrays is : "+Arrays.toString(InsertionSortImpl.insertionSort(arr)));
}
}
public class InsertionSortImpl {
public static int[] insertionSort(int[] intArray) {
int len = intArray.length;
int[] newArray = new int[len];
int positon = -1;
for (int i = 0; i < len; i++) {
for (int j = 0; j < i; j++) {
if (intArray[i] < newArray[j]) {
for (int k = i; k > j; k--) {
newArray[k] = newArray[k - 1];
}
positon = j;
break;
}
}
if (positon == -1) {
newArray[i] = intArray[i];
} else {
newArray[positon] = intArray[i];
positon = -1;
}
}
return newArray;
}
}
/**运行结果:
The unsorted order arrays is : [3, 4, 9, 7, 1, 2]
The sorted order arrays is : [1, 2, 3, 4, 7, 9]
**/