基础排序算法
【注】参考自教材「算法导论」。
1. 插入排序
1.1 简介
插入排序是稳定的、原址的排序算法,其时间复杂度为 。
1.2 伪代码
1 | InsertionSort(A) { |
2. 选择排序
2.1 简介
选择排序是不稳定的、原址的排序算法,其时间复杂度为 。选择排序不稳定的原因在于其在将找到的最小元素交换到有序序列尾部时改变了原来尾部元素与其他元素的相对位置。
2.2 伪代码
1 | SelectSort(A) { |
3. 冒泡排序
3.1 简介
冒泡排序是稳定的、原址的排序算法,其时间复杂度为 。
3.2 伪代码
1 | BubbleSort(A) { |
以上的伪代码是即使在序列有序的情况下时间复杂度仍然为 ,可以通过增加一个是否排好序的标识,来判断是否还有需要对序列继续进行冒泡排序。
1 | BubbleSort(A) { |
这样的冒泡排序算法能够达到最好情况下(序列有序)的时间复杂度为 。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 お前はどこまで見えている!
评论
WalineTwikoo