InsertionSort
插入排序 - 后一位与前面数组进行比较。
插入排序的思想
指定两个指针,从数组头部开始,第一个指针控制有序数组的边界,从 1
开始,另一个指针进行比较操作,控制子数组(有序数组)边界的元素,与前面有序数组进行比较,如果小于前一个元素,就和前一个元素交换位置,完成一次比较。
代码示例
Java
实现
1 | import java.util.Arrays; |
外层循环确定有序数组的边界和循环次数(从 1
开始),内层循环控制子数组中的比较操作,将新加入子数组中的元素与之前的元素进行比较,并插入到数组中的合适位置。
Python
实现
1 | class Insertion(): |
- 简化版
1 | def sort(nums): |
插入排序所需的时间取决于输入中元素的初始位置。如果对一个有序或接近有序的数组进行排序,效率会比随机数组有效的多。