关于求N个无序数中第K大的数。
关于求N个无序数中第K大的数。
昨天去面试,有一题是要求求N个无序数中第K大的数。当时灵感激发,突然想到了快速排序,后来在百度上面一查,已有这种算法。但是,这里还是写下来,大家分享一下。
/*类似于快排的一次排序*/
int fun(int a,int n,int k) /*n个数的个数,k为所要求的第几大的数*/
{
int key=a;
int i=0,j=n-1;
while(i!=k-1&&j!=k-1)
{
while(i<k-1&&a while(j>k-1&&a>key) j--;
exchange(a,a);
}
if(i=k-1)
{
while(j!=k-1)
{
while(j>k-1&&a>key) j--;
exchange(key,a);
}
}
if(j=k-1)
{
while(i!=k-1)
{
while(i>k-1&&a>key) i++;
exchange(key,a);
}
}
return key;
}
void exchange(int a,int b) /* 交换a,b的值*/
{
a=a+b;
b=a-b;
a=a-b;
}
关于求N个无序数中第K大的数。相关推荐
- 找出N个无序数中第K大的数
使用类似快速排序,执行一次快速排序后,每次只选择一部分继续执行快速排序,直到找到第K个大元素为止,此时这个元素在数组位置后面的元素即所求 时间复杂度: 1.若随机选取枢纽,线性期望时间O(N) 2.若 ...
- Leetcode215数组中第k大的数-最小堆
题目 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出 ...
- 寻找数组中第k大的数
题目:有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5,2 ...
- java查找第k大的数字_查找数组中第k大的数
问题: 查找出一给定数组中第k大的数.例如[3,2,7,1,8,9,6,5,4],第1大的数是9,第2大的数是8-- 思考:1. 直接从大到小排序,排好序后,第k大的数就是arr[k-1]. 2. ...
- 找出数组中第k大的数
给定一个数组,找出数组中第k大的数.其实现代码如下: package com.threeTop.www;/*** 找出数组中第k大的数* @author wjgs**/ public class Fi ...
- 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。
问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个包含一个正整数m,表示询问个数 ...
- Java找出数组中第K大的数
题目描述 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5 ...
- python实现查找数组中第k大的数
本文用python3实现查找数组中第k大的数.采用快速排序的方法实现. def findKth(s, k):return findKth_c(s, 0, len(s) - 1, k)def findK ...
- 求无序数组中第k大的数
如果是排好序的数组,则比较简单,直接$arr[$k-1]就能求出,如果不是排好序的就需要先排序,但这种时间复杂度为O(n2),所以不能直接排序.我们知道快速排序就是找一个哨兵,使左边的数比它大,右边的 ...
最新文章
- 用RPM包安装MySQL的默认安装路径问题
- linux批量部署war工具,Linux批量部署工具Expect
- SpringMVC学习笔记四:数据绑定
- if condition 大于_小函数,大用处!巧用AND函数,避开IF函数嵌套
- 网络路径无法访问问题的解决
- C语言模拟实现标准库函数之qsort()
- [javaSE] 集合框架(迭代器)
- 编译程序遇到问题 relocation R_X86_64_32 against `.rodata' can not be used when making a shared object;...
- zabbix 监控项自动发现过滤_zabbix怎么使用自动发现添加新监控项
- mysql导入sql文件命令_MySQL导入.sql文件及常用命令
- matlab比较判断简写,MATLAB一词来自( )的缩写。
- 计算机网络-3-局域网数据链路层原理与技术
- python爬去新浪微博_使用python抓取新浪微博数据
- 电大计算机本科离散数学考试题,2017年电大本科离散数学期末考试复习试题及答案.doc...
- linux系统安装vs2015,Visual Studio 2015正式版安装图文详解
- react + antd table +hooks 如何实现表格序号自增 翻页后序号不从1开始算起
- 任务调度ScheduledExecutorService
- CDH添加ELASTICSEARCH服务elasticsearch-cdh-parcels
- 【软路由】openwrt 搭建个人NAS-超简单
- mysql maven 依赖关系_Maven依赖总结