n个数求第k大
来源:互联网 发布:ubuntu装jdk1.6 编辑:程序博客网 时间:2024/04/30 15:50
借用快排的思想,每次选取一个参考值,把区间分成两块,左边都小于参考值,右面都大于参考值(中间如果有剩下就是和参考值相同),然后根据k再去选择排左面还是排右面
def select(a,l,r,k):i = lj = rprint 'bg',i,j,kkey = a[(l+r)>>1]while i<=j:while a[i]<key: i += 1while a[j]>key: j -= 1if (i <= j):temp = a[i]a[i]= a[j]a[j] = tempi += 1j -= 1print i,j,kprint aif (k <= j and j > l): select(a,l,j,k)elif k >= i and i < r: select(a,i,r,k)a = [12,9,7,6,3,2,0,1,4,5,10,11,8]k = 7select(a,0,len(a)-1,k)print a
0 0
- n个数求第k大
- 求n个数中第k大的数、前K大的数、快速排序
- 求n个数的第K小数
- N个数,求第K大数
- N个数,求第K大数
- N个数,求第K大数
- N个数,求第K大数
- 求n个数中第k大的数、快速排序
- 分治算法求N个数中第K小(大)的数
- BFPTR算法(中位数的中位数算法)求n个数中第k大的数
- 线性选择 求n个数中第k小数
- 查找N个数中第K大的数
- N个数中第k大的元素
- 查找N个数中第K大的数
- N个数求最大的k个数
- 求第k大
- 【O(n)求第K大】ACdream 1099 瑶瑶的第K大
- O(n)时间复杂度求最小的k个数和第k小的数
- Android:将布局的内容延伸到状态栏
- 如何做好测试
- Android内存泄露 (二)
- php函数外的变量不可见, 而if块内的变量又可见------php的思维好特别
- dp与px之间的转换(android屏幕适配)
- n个数求第k大
- 当ping不通网络时。。。
- 侧滑菜单双向滑动
- tap as a service 分析
- ANDROID 探究OOM内幕
- C/C++: short , int , long , long long数据类型选用
- mongodb Replica Set搭建过程
- Android内存泄露 (三)
- Mavn 项目 引入第三方jar包 导致ClassNotFoundException