博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Chapter 6 排序
阅读量:4579 次
发布时间:2019-06-09

本文共 763 字,大约阅读时间需要 2 分钟。

Chapter 6 排序

1-   直接插入排序 O(n2) O(1)

2-   折半插入排序 O(n2) O(1)

      适合关键字较多

3-   希尔排序O(nlogn) O(1)

      又名,缩小增量排序

4-   冒泡排序O(n2) O(1)

      一趟排序后一个关键字到达最终位置

5-   快速排序O(nlogn) O(nlogn)栈

      一趟排序后一个关键字到达最终位置

      设置一个枢轴,待排序序列越接近无序效率越高

6-   简单选择排序O(n2) O(1)

      一趟排序后一个关键字到达最终位置,与初始序列无关。

7-   堆排序O(nlogn) O(1)

      可以看成一棵完全二叉树。适合关键字很多,e.g.从10000个挑10个最小的

8-   二路归并排序O(nlogn) O(n)

      与初始序列无关

9-   基数排序O(d(n+rd)) O(rd)

      高位有序,低位有序

总结:

1   时间复杂度

    “快些以nlogn的速度归队”(快排,希尔,归并,堆)

2   空间复杂度

     快排O(nlogn)

     归并O(n)

     基数O(rd

3   容易插   直接插入 

     起的好   冒泡

   (都是O(n),有序)

4   稳定性:考研情绪不稳定,快些选一堆好友聊聊天(快排,希尔,简选,堆)

5   1)一趟排序能保证一个关键字到达最终位置   交换类(2)/选择类(2)

     2)关键字比较次数和原始序列无关 ---- 简选,折半

     3)排序趟数和原始序列无关 ---- 交换类(2)

     直接插入 – 顺序查找

     折半插入 – 折半查找

6   内部排序算法应用:

     1)n较小:直接插入/简选

     2)基本有序:直接插入/冒泡

     3)n较大:选择O(nlogn)的“快些归队”

     4)n很大:关键字位数较少可分解:基数排序

 

转载于:https://www.cnblogs.com/tangcumalaxia/p/8652047.html

你可能感兴趣的文章
Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据...
查看>>
elasticsearch2.x线程池配置
查看>>
TCP并发服务器(六)——创建线程池,每个线程accept,accept使用互斥锁保护——基于UNP代码...
查看>>
写一个标准宏MIN,输入两个参数,返回较小的
查看>>
跟我一起学Git (十) Patches【转】
查看>>
[译]Vulkan教程(24)索引buffer
查看>>
swfupload 参数说明
查看>>
test for windows live writer plugins
查看>>
Ext + java 显示数据库中的二进制图片
查看>>
TensorFlow 深度学习笔记 Stochastic Optimization
查看>>
最全的PHP常用函数大全
查看>>
8 种提升 ASP.NET Web API 性能的方法
查看>>
微信部分功能故障 已全部恢复
查看>>
bzoj3944: Sum 杜教筛板子题
查看>>
POJ 3635 Full Tank?
查看>>
Html5 视频
查看>>
Win10安装cygwin并添加apt-cyg
查看>>
web监控脚本
查看>>
python3 面向对象之封装
查看>>
The constructor Vibrator() is not visible
查看>>