请说出至少三种排序的思路,这三种排序的时间复杂度分别为 O(n*n) O(n log2 n) O(n + max)

1.O(n*n)冒泡排序(升序)
选择第1个和第2个数字,如果第1个>第2个则二者交换位置,之后选择第2个和第3个数字,类似交换处理,一轮下来后,最大的数字会冒泡到最后一位。接下来,忽略已经排好的数字,对剩下的数字进行新一轮排序,直到所有数字都排序完成。
2.O(n log2 n)快速排序
从数列中挑出一个元素称为基准;
重新排序数列,所有比基准值小的元素放在基准前面,所有比基准值大的元素放在基准后面(相等的数可以放在任一边);
递归的把小于基准值的子数列和大于基准值的子数列排序;
递归到最底部时,数列的大小是零或一,也就是已经排序好了。
3.O(n + max)基数排序
将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可...
    意识流丶阅读 3,205评论 2 9
  • 一、对比分析图 均按从小到大排列 k代表数值中的"数位"个数 n代表数据规模 m代表数据的最大值减最小值 稳定性:...
    leo567阅读 1,253评论 0 1
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,220评论 0 52
  • 本文首发于我的个人博客:尾尾部落 排序算法是最经典的算法知识。因为其实现代码短,应该广,在面试中经常会问到排序算法...
    繁著阅读 4,586评论 3 119
  • 1000天概念挑战:未经思考的人生不值得过,而事实上很多人至死,都没有思考过。每天打磨一个清晰、准确、必要的概念,...
    行走的小肚兜儿阅读 201评论 0 1