第k小元
2015-07-13 15:33
323 查看
/*第k小元*/ #include <iostream> #include <cstdlib> using namespace std; #define N 10 int a ={1,3,5,6,3,8,9,10,11,23}; void swap(int i,int j); int partition(int begin,int end); void select(int k,int &x); void print(); int main(){ int x; select(4,x); cout << x; return 0; } void select(int k,int &x){ int j,begin=0,end=N-1; do{ j = rand()%(end-begin+1)+begin; /*产生随机数在begin-end中*/ swap(j,begin); j = partition(begin,end); if(k == j+1){ x = a[j]; return; }else if(k < j+1){ end = j; }else{ begin = j+1; } }while(begin <= end); } int partition(int begin,int end){ int i = begin,j = end+1; do{ do{ i++; }while(a[i] < a[begin]); do{ j--; }while(a[j] > a[begin]); if(i <= j){ swap(i,j); } }while(i<=j); swap(begin,j); return j; } void swap(int i,int j){ int tmp; tmp = a[i]; a[i] = a[j]; a[j] = tmp; }
相关文章推荐
- [Centos] mod_wsgi 安装流程以及遇到问题解决办法。apxs: command not found 或 Sorry, Python developer package does not appear to be installed.
- 日历
- SublimeText 3支持中文输入
- 在 Linux 平台下使用 JNI
- 快速排序-合并排序(分治法运用)
- 训练:用gfsh执行常见的任务
- 生成一定数量的不重复随机数
- MySQL Community Server 5.6和MySQL Installer 5.6
- 【高斯消元】HYSBZ 1013 球形空间产生器sphere
- Cannot load hello library: java.lang.UnsatisfiedLinkError: /opt/wdh/jni/libhello.so: /opt/wdh/jni/li
- STL笔记之slist
- stl之hashtable
- 学习C++的记录
- InputStream加载不上文件问题
- What I have lived for
- 获取本机IP地址和MAC地址
- jQuery 让DIV显示后延时几秒后消失
- PHP微信红包的算法实现探讨
- INotifyPropertyChanged接口的PropertyChanged 事件
- 工作中常用shell之ssh登陆不用输入"yes"