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
  • asp之家 网络编程 m.aspxhome.com