/**
* @author cnkeysky
*/
public class DemoTest {
public static void main(String[] args) {
int[] arr = {-1, 9, 1, 4, 3, 10, 7, 0};
System.out.println("排序前:");
printArr(arr);
insertionSort(arr);
System.out.println("排序后:");
printArr(arr);
}
public static void insertionSort(int[] arr) {
int len = arr.length;
for (int i = 1; i < len; ++i) {
int aux = arr[i];
int j = i;
// 方式1 与前 i 个值进行比较(从后向前比较)
for (; j > 0 && aux < arr[j - 1]; --j) {
arr[j] = arr[j - 1];
}
// 方式2
/*for (; j > 0; --j) {
if (aux < arr[j - 1]) {
arr[j] = arr[j - 1];
} else {
break;
}
}*/
arr[j] = aux;
System.out.printf("第 %d 次排序: ", i);
printArr(arr);
}
}
public static void printArr(int[] arr) {
for (int i : arr) {
System.out.print(i + " ");
}
System.out.println();
}
}
来源:CSDN
作者:cnkeysky
链接:https://blog.csdn.net/cnkeysky/article/details/104442749