社区
数据结构与算法
帖子详情
关于快速排序性能的疑问
司青-已停止更新
2013-01-27 07:33:05
快排理论上平均速度是所有排序中最快的,但在实际应用当中,由于高级语言的限制,要用递归来实现。这样一来就有了重复调用函数的时间开销,快速排序的速度优势就没有了啊。
stdlib中的qsort函数内部是不是通过递归实现的?
...全文
199
5
打赏
收藏
关于快速排序性能的疑问
快排理论上平均速度是所有排序中最快的,但在实际应用当中,由于高级语言的限制,要用递归来实现。这样一来就有了重复调用函数的时间开销,快速排序的速度优势就没有了啊。 stdlib中的qsort函数内部是不是通过递归实现的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kosora曹
2013-01-28
打赏
举报
回复
“重复调用函数”主要是内存的开销,对时间的影响并不大;另外,“归并排序”是“以牺牲空间的代价减少时间”的典型排序,所以经常用于外部排序(因为硬盘的大小几乎是无限的);如果要考虑节省内存,堆排序是比较合适的算法,整个排序只需要一个全局变量int temp用于swap操作;还有,快速排序是可以转换为非递归的,方法是自顶向下对空间树进行层序遍历;归并也可以转换为非递归,通过队列操作,自底向上依次生成父节点,直到根节点,空间树接近完全二叉树。
kernelkoder
2013-01-28
打赏
举报
回复
太高深了,不懂啊
FancyMouse
2013-01-28
打赏
举报
回复
>这样一来就有了重复调用函数的时间开销,快速排序的速度优势就没有了啊。 我笑笑。 >stdlib中的qsort函数内部是不是通过递归实现的? libc里的qsort没看过。STL的sort你能想到的库都是。
dracularking
2013-01-28
打赏
举报
回复
引用 4 楼 cnmhx 的回复:
在现有的软件中,高级语言实现快速排序,鲜有用递归来实现的。
+1 虽然没有实际调研过,但是高级语言就为什么非要用递归实现呢?感觉很站不住脚。
cnmhx
2013-01-28
打赏
举报
回复
在现有的软件中,高级语言实现快速排序,鲜有用递归来实现的。
快速排序
性能
本文介绍了
快速排序
算法的基本原理,包括选择基准、分区和递归排序。分析了影响其
性能
的因素,如基准选择、数据分布等。重点阐述了 Java 中
快速排序
的优化策略,如改进基准选择、优化小数组处理、限制递归深度和采用三向切分
快速排序
等。
快速排序
与其
性能
分析
本文详细介绍了
快速排序
算法,包括其分治策略、原址排序过程及
性能
分析。在不同情况下(最坏、最好、平衡划分)的运行时间分别为O(n^2)、O(nlgn)和O(nlgn),展示了
快速排序
的高效性和灵活性。
快速排序
的
性能
分析
本文深入解析了
快速排序
算法的基本思想、实现过程及
性能
分析,包括算法的分治策略、实现步骤、复杂性分析及随机化版本的优化。
快速排序
的
性能
优化
本文探讨了
快速排序
的多种
性能
优化方法。在面对特殊场景时,普通
快速排序
性能
会下降,通过三数取中法优化可使平均时间复杂度降至O(NlogN)。三路划分法适用于处理大量重复元素的情况,将数组分为比基准小、相等和大的三部分。自省排序则是C++标准库采用的终极优化策略,结合
快速排序
与堆排序,在递归过深时自动切换,防止
性能
退化。
【实验】
快速排序
和随机化快排的
性能
比较
本文通过实验对比
快速排序
与随机化
快速排序
在不同数据类型上的
性能
,包括随机数组、有序数组和正态分布数组,分析了两种算法在不同计算机配置下的表现。
数据结构与算法
33,026
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章