程序的灵魂----算法(二)
来源:互联网 发布:英雄杀mac客户端 编辑:程序博客网 时间:2024/05/16 11:33
4、快速排序算法
(1)算法描述
从待排序序列中任意挑选一个元素,作为基准
将所有小于基准的元素放在基准之前,大于基准的元素放在基准之后,等于基准的元素放在基准之前或之后,这个过程称为分组
以递归的方式,分别对基准之前和基准之后的分组继续进行分组,知道每个分组内的元素个数不多于 1 个为止
(2)算法评价
平均时间复杂度:O(NlogN)
非稳定排序
若每次都能均匀分组,则排序速度最快
(3)快速排序算法实现
(4)快速排序说明
5、归并排序算法
(1)算法描述
将待排序序列从中间划分为两个相等的子序列
以递归的方式分别对两个子序列进行排序
将两个有序的子序列合并成完整的序列
有序合并:
分配合并序列,其大小为两个有序序列大小之和
设定两个指针,分别指向两个有序序列的首元素
比较指针目标,娇笑着进入合并序列,指针后移
重复步骤3,直到某一指针到达序列末尾
将另一序列的剩余元素直接复制到合并序列末尾
(2)算法评价
平均时间复杂度:O(2NlogN)
稳定排序
对数据的有序性不敏感
非就地排序,需要辅助空间,不适合处理海量数据
(3)归并排序算法实现
(4)归并排序说明
阅读全文
0 0
- 程序的灵魂--算法(二)
- 程序的灵魂----算法(二)
- 程序的灵魂--算法
- 程序的灵魂 ---算法
- 算法---程序的灵魂,没错就是灵魂!
- 程序的灵魂----算法(一)
- (谭版)2 程序的灵魂—算法
- 第二章 程序的灵魂—算法 (答案)
- 程序的灵魂——算法
- 第2章 程序的灵魂-算法
- 程序的灵魂——算法
- chapter2 算法——程序的灵魂
- 程序的灵魂——算法
- 数据结构与算法是程序的灵魂
- 第三课,程序的灵魂-算法
- 程序的灵魂——算法
- 第二章:算法-----程序的灵魂
- 算法——程序的灵魂
- Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
- 小白入门---HTML5中数据的存储方式
- Linux 文件系统编程之系统调用和标准I/O库
- 最长公共子序列
- HDU-6058 Kanade's sum
- 程序的灵魂----算法(二)
- RMQ算法
- hdu1811(拓扑排序+并查集)
- 初学linux 用到的命令
- Xamarin.Forms 用户界面——控件——Picker
- springmvc 上传文件 上传多张照片 的APP接口
- 一只加班狗的絮絮叨叨
- 排序(快排,归并,堆排)
- MySQL在Windows上的免安装版本配置(5.7.19)