算法题/寻找第K大数
来源:互联网 发布:java书籍推荐顺序 编辑:程序博客网 时间:2024/06/05 10:16
python3
在N个乱序数字中查找第k大的数字 (最简单的想法,后续改进)
采用快速排序法对输入的数据进行排序,然后输出第k大个数
快速排序法思路:
设置a[0]为基准数
定义一个存放小于基准数的列表low
定义一个存放大于基准书的列表high
定义一个存放基准数的列表median
将数组a中小于基准数的数据放入low,大于基准数的数据放入high,基准数放于median
递归
#coding:utf-8def quickSort(a): low = [] high = [] median = [] if len(a) <= 1: return a else: #设置一个基准 baseline = a[0] for i in a: if i < baseline: low.append(i) elif i > baseline: high.append(i) else: median.append(i) low_arr = quickSort(low) high_arr = quickSort(high) arr = low_arr+median+high_arr return arra = input() data = [int(x) for x in a.split()]#将最后一个k值弹出k = data.pop()print(quickSort(data)[-k])
输入例如
13 -27 26 8 -15 4 2,其中2为要求的第二大的数
阅读全文
0 0
- 算法题/寻找第K大数
- 分治算法--寻找第k大数
- 寻找第k大数
- 【算法】寻找数组第K大数算法总结
- 【算法题】寻找第K个丑数
- 寻找第K大数的方法
- 寻找第K大数方法总结
- 寻找无序数组中的第K大数
- 寻找无序数组中的第K大数
- 寻找第k大数(快排思想)
- POJ3579 Median 寻找第K大数
- SzNOI c016 : 寻找第K大数
- 寻找无序数组中的第K大数
- 寻找数组中第K大数
- 寻找第K大数的方法
- 寻找数组第二大数和第K大数
- 寻找前K大数
- 寻找数组中第K大数---使用堆
- ant+jenkins+testNG自动化测试环境搭建
- WEB前段快速入门到玩溜
- WebSocket刨根问底(一)
- (二十二)访问者模式详解(伪动态双分派)
- Java单例模式和多例模式知识点总结
- 算法题/寻找第K大数
- llinux鸟哥的私房菜学习笔记
- 启动时间
- ORacle学习笔记(四) 用户解锁,修改密码
- UVa11402 Ahoy, Pirates!
- 转:向linux服务器上传下载文件方式收集
- iOS设计:绘图及性能
- DFS深度优先搜索
- 爬虫学习教程