中值排序发散
来源:互联网 发布:大型java项目开发案例 编辑:程序博客网 时间:2024/05/05 06:26
中值排序的平均时间性能是nlog(n),但是最坏情况下(基本有序),partition函数复杂度为O(n^2),这样就使得中值排序性能退化到O(n^2)。
随机选择pivotIndex将使得selectKth的性能为线性,可以避免退化情况,从而可以使中值排序平均性能达到O(nlogn)。
优化算法:有一个线性的选择算法,能够确保中值排序最坏情况仍为O(nlogn),称为BFPRT。
对于partition变种,倾向于选择加入随机中枢位置参数(return 最终分割位置),比起只选择最左作为中枢要更灵活,可以满足随机选取中枢要求。
针对partition想到:selectKth递归调用partition,可以用来选取第K大元素,更近一步可以解决TOP K问题(无序),而不止用堆这一种方法。据说面试有时会问道。
由中值排序想快排的演化:
快排和中值排序使用了大致相同的思想,但却比中值排序简单。
在快排中我们不再需要中值,而是通过某种策略选择一个元素,该元素将数组分为小于和大于两部分。同样快排也面临退化的情况(基本有序),最坏
性能也是O(n^2)。
- 中值排序发散
- ashMap中值的排序
- 两个排序数组求中值
- 中值
- php uasort 多维数组中值排序
- 基于冒泡排序算法的中值滤波器
- TotalSort全排序(抽样取中值)
- 三中值和插入排序混合实现快速排序
- 用中值排序基数法实现树状结构
- 使用“使用中值排序基数法”实现树状结构(一)
- 使用“使用中值排序基数法”实现树状结构(二)
- 用中值排序基数法实现树状结构
- 用中值排序基数法实现树状结构
- 用中值排序基数法实现树状结构
- 快速排序普通法与中值枢纽元法以及三切法
- 根据字典中值的大小,对字典的项排序
- 根据字典中值的大小对字典中的项排序
- 算法20:两个排序数组merge后的中值
- Git_Windows 系统下Git安装图解
- iPhone - 读取工程包中的二进制文件
- 电商提升用户体验的几个方面
- POJ 1466 Girls and Boys(最大独立点集)
- IIS 子验证程序的注册表键没有在本地计算机上正确配置,匿名密码同步功能被禁用
- 中值排序发散
- git format-patch
- JAVA网络编程之Socket用法
- ListView滚动位置的记录回复
- AndroidManifest.xml 之 android.intent.action.MAIN & android.intent.category.LAUNCHER
- RTP协议分析
- mysql 自动执行的脚本
- “移动硬盘不显示盘符,磁盘管理中能找到..."的解决办法
- ZOJ 1337 Pi