Python实现查找数组中任意第k大的数字算法示例

这篇文章主要介绍了Python实现查找数组中任意第k大的数字算法,涉及Python针对数组的排序、查找等相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python实现查找数组中任意第k大的数字算法。分享给大家供大家参考,具体如下:

模仿partion方法,当high=low小于k的时候,在后半部分搜索,当high=low大于k的时候,在前半部分搜索。与快排不同的是,每次都减少了一半的排序。

 def partitionOfK(numbers, start, end, k): if k <0 or numbers== [] start < 0 end>= len(numbers) or k > end: return None low = start high = end key = numbers[start] while low = key: high -= 1 numbers[low] = numbers[high] while 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.0133.cn/aideddesign/paixu_ys

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

以上就是Python实现查找数组中任意第k大的数字算法示例的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » python