关于归并排序的算法优化策略
来源:互联网 发布:手机上怎么开通淘宝 编辑:程序博客网 时间:2024/05/29 09:24
归并排序,从伪代码分析,在不使用堆排序的基础上可以说是最速度最快的算法
但是其缺点也很明显,频繁的复制数据,在利用动态分配内存时,在合并时频繁的复制数据,还有在小数据的排序时,不如插入排序等,由于随机化快速排序,在实际应用中,归并排序的速率很难超过快速排序
对此提出一些改进方法
1.针对频繁复制数据,对于A,B两个数组,可以选择当奇数次合并时,从A复制到B,然后偶数次时从B复制到A,而不用每次从A到B再从B到A,采用更换源数组于目标数据的方法,减少一半的复制次数。优化算法
2.针对动态内存分配的时候,采用lazy分配模式。一次分配所有的空间,而不采用动态分配能提高内存分配速率(http://blog.kingsamchen.com/archives/668)
3.利用插入排序优化归并排序的小数据的排序,归并排序分割到比较小的组时。对较小的组采用插入排序后,再进行合并,合并的较大的组,采用原始的归并排序(http://fangxia722.blog.163.com/blog/static/317290122009112831244671/)
- 关于归并排序的算法优化策略
- 归并排序算法的优化
- 归并排序算法的编码和优化
- 《算法》习题---优化归并排序
- 优化的归并排序
- 归并排序以及归并排序的优化
- 【分治策略】归并排序算法总结
- 归并排序的算法
- 就地归并排序算法的未做优化实现
- 算法(第四版)学习笔记之归并排序的优化
- Java实现的归并排序算法(递归优化版)
- TimSort--归并排序的优化
- 【基础算法】排序-复杂排序之一(归并排序的两种优化讨论)
- 关于归并排序的练手
- 关于归并排序的思考
- 归并排序--基础的算法
- 归并排序的递归算法
- 归并排序的简单算法
- 深度挖掘:Oracle RAC数据库架构分析与实战攻略
- jquery zTree 入门,从后台获取数据
- objective-c中获取时间的方法
- ios学习之 点击屏幕任何地方隐藏键盘实现 目前感觉最好用的
- 走! 我们一起去看看指针(二)
- 关于归并排序的算法优化策略
- Linux命令、编辑器与Shell编程
- dddddddd
- 从博客角度看我的两年之旅
- 写在实习结束,汇编学习之前的话
- Sqlite3查询指定行数数据
- iOS之 Grouped类型UITableViewCell的一点问题
- 在子类中调用父类的带参数的构造函数
- Qt帮助文档设置