关于求N个无序数中第K大的数。

2012-03-16 来源:小木虫作者: SmallWarm

昨天去面试,有一题是要求求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大的数。相关推荐

  1. 找出N个无序数中第K大的数

    使用类似快速排序,执行一次快速排序后,每次只选择一部分继续执行快速排序,直到找到第K个大元素为止,此时这个元素在数组位置后面的元素即所求 时间复杂度: 1.若随机选取枢纽,线性期望时间O(N) 2.若 ...

  2. Leetcode215数组中第k大的数-最小堆

    题目 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出 ...

  3. 寻找数组中第k大的数

    题目:有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5,2 ...

  4. java查找第k大的数字_查找数组中第k大的数

    问题:  查找出一给定数组中第k大的数.例如[3,2,7,1,8,9,6,5,4],第1大的数是9,第2大的数是8-- 思考:1. 直接从大到小排序,排好序后,第k大的数就是arr[k-1]. 2. ...

  5. 找出数组中第k大的数

    给定一个数组,找出数组中第k大的数.其实现代码如下: package com.threeTop.www;/*** 找出数组中第k大的数* @author wjgs**/ public class Fi ...

  6. 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。

    问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个包含一个正整数m,表示询问个数 ...

  7. Java找出数组中第K大的数

    题目描述 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5 ...

  8. python实现查找数组中第k大的数

    本文用python3实现查找数组中第k大的数.采用快速排序的方法实现. def findKth(s, k):return findKth_c(s, 0, len(s) - 1, k)def findK ...

  9. 求无序数组中第k大的数

    如果是排好序的数组,则比较简单,直接$arr[$k-1]就能求出,如果不是排好序的就需要先排序,但这种时间复杂度为O(n2),所以不能直接排序.我们知道快速排序就是找一个哨兵,使左边的数比它大,右边的 ...

最新文章

  1. 用RPM包安装MySQL的默认安装路径问题
  2. linux批量部署war工具,Linux批量部署工具Expect
  3. SpringMVC学习笔记四:数据绑定
  4. if condition 大于_小函数,大用处!巧用AND函数,避开IF函数嵌套
  5. 网络路径无法访问问题的解决
  6. C语言模拟实现标准库函数之qsort()
  7. [javaSE] 集合框架(迭代器)
  8. 编译程序遇到问题 relocation R_X86_64_32 against `.rodata' can not be used when making a shared object;...
  9. zabbix 监控项自动发现过滤_zabbix怎么使用自动发现添加新监控项
  10. mysql导入sql文件命令_MySQL导入.sql文件及常用命令
  11. matlab比较判断简写,MATLAB一词来自( )的缩写。
  12. 计算机网络-3-局域网数据链路层原理与技术
  13. python爬去新浪微博_使用python抓取新浪微博数据
  14. 电大计算机本科离散数学考试题,2017年电大本科离散数学期末考试复习试题及答案.doc...
  15. linux系统安装vs2015,Visual Studio 2015正式版安装图文详解
  16. react + antd table +hooks 如何实现表格序号自增 翻页后序号不从1开始算起
  17. 任务调度ScheduledExecutorService
  18. CDH添加ELASTICSEARCH服务elasticsearch-cdh-parcels
  19. 【软路由】openwrt 搭建个人NAS-超简单
  20. mysql maven 依赖关系_Maven依赖总结

热门文章

  1. mysql seq 重置_需要在Oracle中重置序列的值
  2. laravel 图片流_laravel实现上传图片的两种方式小结
  3. 计算机网络:详解HTTP协议
  4. GDB多进程调试(转)
  5. single-number-ii
  6. 13.jQuery选择器
  7. Laravel 有哪些核心的内容?
  8. 用AndroidSDK中的Face Detector实现人脸识别
  9. 在64位Windows7上安装64位Oracle11g
  10. Java实现的简单的WebService服务发布和Client调用例子