对于少量元素的排序,它是一个有效的算法。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增 1 的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动。
private static int[] insertSort(int[] num) {
int i, j;
int n = num.length;
int target;
for (i = 1; i < n; i++)
{
j = i;
target = num[i];
while (j > 0 && target < num[j - 1])
{
num[j] = num[j - 1];
j--;
}
num[j] = target;
}
return num;
}
测试
public static void main(String[] args) {
int[] num = new int[]{9,1,5,3,10,8,2,7,6,4,4,5};
for (int a : insertSort(num)) {
System.out.print(a + " ");
}
}
结果