快速排序以及找到第k小的元素
来源:互联网 发布:网上荣誉室源码 编辑:程序博客网 时间:2024/04/30 11:13
快速排序使用分治的思想,对子数组A[p..r]进行快速排序,分3步:
1. 分解:将数组A[p..r]划分成两个子数组A[p ..q-1]和A[ q+1,..,r],使得A[p ..q-1]中的每一个元素均小于等于A[q],
A[ q+1,..,r]中的每个元素均大于等于A[q]。
2. 解决:对子数组A[p,..,q-1]和A[q+1,..,r]进行排序
3. 合并:因为快速排序是原址排序,所以不需要合并操作。
快速排序的运行时间依赖于划分是否平衡,所以这里的排序基于随机抽样,Random_partition随机选一个元素做主元。
最坏情况下,快速排序的时间复杂度是O(n*n),在元素互异的情况下,它的期望时间复杂度是O(nlgn),平均性能很好。
而且它是原址排序。
对于一个数组,要找到第k小的元素,可以在快速排序的基础上修改。
0 0
- 快速排序以及找到第k小的元素
- 算法:快速排序以及第k小元素的线性选择算法
- 算法:快速排序以及第k小元素的线性选择算法
- 快速排序求第k小元素
- 【算法】快速排序/数组第K小的元素
- 在2个排序数组内找到第K小的元素
- 基于快速排序寻找第k小元素
- 两个排序的数组,找到第k大的元素
- 快速排序(3)的应用:选择--用于选出第K小的元素
- 利用快速排序找到第k大的数字
- 快速找出第K大的元素 (快速排序)
- 排序算法-快速排序(及求第K小元素)
- 第k小的元素
- 寻找第k小的数字,包括快速排序
- 快速排序求第k小的数
- 快速排序 与 第k小的数
- 快速排序之寻找第k小的值
- 算法学习:找到数组中的第k小元素
- session入memcache
- Linux_php-fpm自启动脚本(CentOS7中可用)
- 383. Ransom Note
- R中常用的数据分析函数
- PhotoView 图片缩放功能
- 快速排序以及找到第k小的元素
- hdu5514 Frogs(容斥)
- ncurses--读书笔记4
- ApplicationContext的初始化问题
- GitHub入门之一:使用github下载项目
- 剑指Offer——回溯算法解迷宫问题(java版)
- CString与string、char*的区别和转换
- UVa OJ 1442 - Cav
- 哪些CSS属性可以继承