对于一个初级程序员的我一直对算法不是很吃透,所以这几天补习了一些排序算法。
这篇博文分析插入排序的思想和实现。
如有错误请大家指正!!!
1.插入排序的思想
插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。(百度百科)
2.插入排序的实现
package com.imun.test.sort;
public class NumSort {
private static final int[] NUM_ARR = {54, 26, 93, 17, 77, 31, 44, 55, 20};
public static void insertSort() {
int[] numArr = NUM_ARR;
int temp = 0;
int j = 0;
for (int i = 1; i < numArr.length; i++) {
j = i;
while (j > 0) {
// 如前一个元素大于当前元素则交换位置
if (numArr[j] < numArr[j - 1]) {
temp = numArr[j];
numArr[j] = numArr[j - 1];
numArr[j - 1] = temp;
} else {
break;
}
j--;
}
}
for (int num : numArr) {
System.out.print(num + "\t");
}
}
public static void main(String[] args) {
insertSort();
}
}