排序算法

排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。

图示
不稳定的排序算法:

简单选择排序、快速排序、希尔排序、堆排序

稳定的排序算法

冒泡排序、直接插入排序、归并排序、基数排序

时间复杂度

冒泡排序:O(n^2)
简单选择排序:O(n^2)
直接插入排序:O(n^2)
快速排序是不稳定的。最理想情况算法时间复杂度O(nlogn),最坏O(n^2)。
堆排序:O(nlogn)
归并排序:是O(nlogn)
希尔排序:O(n^1.25)
基数排序:O(d(rd+n))

各排序算法的简单描述

  • 冒泡排序:从无序区通过交换找出最大元素放到有序区前端。
  • 简单选择排序:在无序区里找一个最小的元素跟在有序区的后面。对数组:比较得多,换得少。
  • 直接插入排序:把无序区的第一个元素插入到有序区的合适的位置。对数组:比较得少,换得多。
  • 堆排序:从堆顶把根卸出来放在有序区之前,再恢复堆。
  • 归并排序:把数据分为两段,从两段中逐个选最小的元素移入新数据段的末尾。可从上到下或从下到上进行。
  • 快速排序:在区间中随机挑选一个元素作基准,将小于基准的元素放在基准之前,大于基准的元素放在基准之后,再分别对小数区与大数区进行排序。
  • 桶排序:将值为i的元素放入i号桶,最后依次把桶里的元素倒出来。
  • 基数排序:一种多关键字的排序算法,可用桶排序实现。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 10,601评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 9,094评论 0 15
  • 爱情不应该是冷人的冰块 应该是暖人的热茶 我的热茶在哪里?
    f9b74c8aca78阅读 1,027评论 0 0
  • 高考后的周末自在惬意,不想远行,骑一辆单车,感受大学氛围。 化大很美,满眼绿色,亭台楼榭,样样齐全。
    刘小柒柒阅读 3,255评论 2 0
  • 昨天又是週五了,時間也是越過越快,這一週又要過去了,早上出操以後,就是回宿舍休息洗漱,完了以後就是準備去上這一天的...
    坚志阅读 1,076评论 0 0

友情链接更多精彩内容