插入排序
插入排序通过将元素插入有序序列中合适的位置,从而实现排序。
算法步骤
将待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。
注:如果待插入的元素与有序序列中的某个元素相等,则将该元素插入到相等元素的后面。
代码实现
public static int[] insertSort(int[] nums) {
for (int i = 1;i < nums.length;i++) {
int currentNum = nums[i];
int insertIndex = i;
for (int j = i - 1;j >=0;j--) {
if (currentNum < nums[j]) {
nums[j + 1] = nums[j];
insertIndex--;
}
}
if (insertIndex != i) {
nums[insertIndex] = currentNum;
}
}
return nums;
}