Insertion Sort
插入排序,将被排序序列分为两个序列,一个是已经排序好的有序序列
, 一个是未经排序的无序序列
, 在排序的过程中,每次取一个无序序列元素到插入到有序序列中适当位置,直到所有无序序列元素插入到有序序列中去。
1 |
|
运行结果:
最坏情况:整个序列为逆序
- 内层循环
temp < R[j]
始终成立 - 时间复杂度: O(n2)
最好情况:整个序列为有序
- 内层循环
temp < R[j]
始终不成立,退化为单层循环 - 时间复杂度: O(n)
插入排序,将被排序序列分为两个序列,一个是已经排序好的有序序列
, 一个是未经排序的无序序列
, 在排序的过程中,每次取一个无序序列元素到插入到有序序列中适当位置,直到所有无序序列元素插入到有序序列中去。
1 | #include <iostream> |
运行结果:
最坏情况:整个序列为逆序
temp < R[j]
始终成立最好情况:整个序列为有序
temp < R[j]
始终不成立,退化为单层循环