Python实现查找数组中任意第k大的数字算法示例
作者:hustfc 时间:2022-04-26 22:10:46
本文实例讲述了Python实现查找数组中任意第k大的数字算法。分享给大家供大家参考,具体如下:
模仿partion方法,当high=low小于k的时候,在后半部分搜索,当high=low大于k的时候,在前半部分搜索。与快排不同的是,每次都减少了一半的排序。
def partitionOfK(numbers, start, end, k):
if k < 0 or numbers == [] or start < 0 or end >= len(numbers) or k > end:
return None
low = start
high = end
key = numbers[start]
while low < high:
while low < high and numbers[high] >= key:
high -= 1
numbers[low] = numbers[high]
while low < high and numbers[low] <= key:
low += 1
numbers[high] = numbers[low]
numbers[low] = key
if low < k:
return partitionOfK(numbers, start + 1, end, k)
elif low > k:
return partitionOfK(numbers, start, end - 1, k)
else:
return numbers[low]
numbers = [3,5,6,7,2,-1,9,3]
print(sorted(numbers))
print(partitionOfK(numbers, 0, len(numbers) - 1, 5))
输出:返回了第五大排序的数字
[-1, 2, 3, 3, 5, 6, 7, 9]
6
PS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/weixin_36372879/article/details/84501054
标签:Python,查找,数组
0
投稿
猜你喜欢
python删除某个目录文件夹的方法
2022-08-22 06:33:32
PHP之使用swoole统计在线人数和ID案例讲解
2023-06-21 21:12:57
MySQL JOIN关联查询的原理及优化
2024-01-28 13:13:49
python 模拟登陆github的示例
2022-01-05 17:52:41
Python和C/C++交互的几种方法总结
2021-08-25 00:49:06
如何给eWebEditor编辑器加上运行代码框功能
2007-09-25 07:02:00
js自动闭合html标签(自动补全html标记)
2023-08-25 07:06:35
Flask使用Pyecharts在单个页面展示多个图表的方法
2021-10-12 18:16:35
Python函数递归调用实现原理实例解析
2023-01-16 12:00:52
Python 实现日志同时输出到屏幕和文件
2021-06-25 23:04:29
Pytorch中torch.nn.Softmax的dim参数用法说明
2023-08-28 04:20:10
使用Python完成SAP客户端的打开和系统登陆功能
2021-02-28 17:12:29
PHP遍历目录实现方法介绍
2023-05-25 06:31:41
Python采用raw_input读取输入值的方法
2021-09-08 03:19:05
Python加载文件内容的两种实现方式
2023-09-01 03:17:14
Oracle跨数据库查询并插入实现原理及代码
2024-01-14 18:52:58
网站中美好的细节
2011-07-13 18:43:07
Python实现小数转化为百分数的格式化输出方法示例
2023-07-15 05:58:15
如何做一个只搜索本网站的引擎?
2010-07-12 19:02:00
Linux系统下使用XHProf和XHGui分析PHP运行性能
2023-11-14 23:56:33