1.插入排序—直接插入排序(Straight Insertion Sort)
排序方法 | 时间复杂度 | 空间复杂度 | 稳定性 | 复杂性 | ||
平均情况 | 最坏情况 | 最好情况 | ||||
插入排序 | O(n2) | O(n2) | O(n) | O(n) | 稳定 | 简单 |
private void insertSort(int[] array) {
int arraySize = array.length;
for (int i = 1; i < arraySize; i++) {
int j = i;
int waitInsert = array[i];//存储当前待插入值
while(j > 0 && waitInsert < array[j - 1]) {//在待插入值向前循环比较
array[j] = array[j - 1];//遇到比自身大的,将该大值向后移一位,
j--;
}
array[j] = waitInsert;//比自身小,锁定当前索引插入待插入值
}
System.out.println(Arrays.toString(array));
}