用快速排序的思想求第K大的数值
来源:互联网 发布:python msi下载 编辑:程序博客网 时间:2024/05/21 12:43
以前只是知道堆排序能快速求,而不知道快速排序也可以,然后今天通过快速排序实现了一下。
#include <iostream>using namespace std;template <class T>int quick2_sort(T a[],int low,int high){T temp=a[low];int pos=low;int i=low,j=high;while(i<j){while(i<j && a[j]>temp)j--;if(i<j){a[pos]=a[j];pos=j;}while(i<j && a[i]<temp)i++;if(i<j){a[pos]=a[i];pos=i;}}a[pos]=temp;return pos;}//利用快速排序的思想查找第K大的数值//第一个参数代表要查找的数组//第二个参数代表数组的长度//第三个参数代表要查找第几大的元素template <class T>T findkth(T a[],int n,int k){int low=0,high=n-1;while(1){int pos=quick2_sort(a,low,high);if(pos==n-k)return a[pos];else if(pos<n-k){low=pos+1;high=n-1;}else if(pos>n-k){high=pos-1;low=0;}}}int main(){int a[11]={78934,234,65,32,543,354,567,3412,23,547,423};cout<<findkth(a,11,4)<<endl;return 0;}
0 1
- 用快速排序的思想求第K大的数值
- 用快速排序的思想求第K大的数或最大的k个数
- 利用快速排序思想求数组第k大元素
- 求n个数中第k大的数、前K大的数、快速排序
- 利用快速排序思想找出数组中第K大的数
- 求n个数中第k大的数、快速排序
- 快速找出第K大的元素 (快速排序)
- 求序列第K大数的部分快速排序法
- 快速排序求第k小的数
- 求两个排序数组的第K大元素--求全排列的第K大元素
- 第k大的数(快速排序的划分过程)
- 由快速排序引出的第k大的数..
- 快速排序找第k大的数
- 利用快速排序找到第k大的数字
- hdu 2852 求第k大数值
- 求无序数组第K大的数值,及其所在的位置
- 利用快速排序的思想寻找乱序数组第k大数
- 第K小的数 快速排序 选择前K大O(n)
- VmRSS: 33604 kB
- coco2dx中,创建精灵的各种方法
- intellij新建maven工程部署到tomcat提示缺少jar包
- Neutron中的数据包路径
- JAVA TreeMap 红黑树
- 用快速排序的思想求第K大的数值
- String、StringBuffer与StringBuilder之间区别
- commons_dbutils的介绍与使用
- 快速幂模板
- A letter for all the CSDN blogers and Staffs
- hdu4911 简单树状数组
- hdu 2072 单词数 字符串处理
- commons-fileupload的详细介绍与使用
- iOS项目框架搭建之RESideMenu+RDVTabBarController+MLNavigationController