python实现找到第i小的元素
来源:互联网 发布:姓名贴软件 编辑:程序博客网 时间:2024/06/06 15:47
代码如下:
# -*- coding:utf-8 -*-# python实现找到第i小的元素import randomdef RandomizedSelect(li, p, r, i): '''li为所要操作的列表 p为起始位置 r为结束位置 i表示第i小元素''' if p == r: return li[p] q = RandomizedPartition(li, p, r) k = q - p + 1 if i == k: return li[q] elif i < k: return RandomizedSelect(li, p, q-1,i) else: return RandomizedSelect(li, q+1, r, i-k)def RandomizedPartition(li, p, r):'''此函数的功能是先随机出主元,然后一一和主元比较,并相应的交换位置 最后得到,在主元的左边全部小于它,主元的右边全部大于它。''' e = random.randint(p,r) li[e],li[r]=li[r],li[e] x = li[r] i = p - 1 for j in range(p, r): if li[j] < x: i += 1 li[i],li[j] = li[j],li[i] li[i+1],li[r] = li[r],li[i+1] return i+1if __name__ == '__main__': li = [1,4,6,3,7,9,12,89,34,76,34,87,990] print RandomizedSelect(li, 0, len(li)-1, 12)
0 0
- python实现找到第i小的元素
- Python实现返回数组第i小的元素
- 在O(n)时间内找到数组中的第i小的元素
- 第i小元素
- 求第i小的元素
- 【算法导论】第i小的元素
- 查找第i小的元素
- 选择第i小的元素
- 求第i小的元素
- 快速排序以及找到第k小的元素
- 【算法】查找数组第i小的元素的算法
- 随机选择(求中位数,第i 小的元素)
- 算法导论CLRS 9.2 选择第i小的元素
- 中位数------求数组中第i小的元素
- 找数组中第i小的元素
- 最坏为线性时间的查找第i小元素
- 查找无序序列中第i小的元素
- 查找数组中第i小的元素
- 10个重要的Linux ps命令实战
- POJ3621 Sightseeing Cows
- 程序设计常用的C++模板库(STL)
- VACCUM
- java 生成一组不重复的随机数
- python实现找到第i小的元素
- Java 中4种访问修饰符 public/protected/default(friendly)/private
- Java 基础之CallBack的使用
- HDU 1081 最大子矩阵(LCS_DP+前缀和)
- web前端小经验
- 上机题目(高级)- 两个超级大的整数相减 -运用Java 类解决(Java)
- errorlevel与%errorlevel%的区别
- C#中直接操作内存的方法
- windows下 VMware按装Linux是遇到的问题