求无序数组的第二小的元素
1. 比较是成对比较的,先拿前2个数比较,大的那个记作当前最大值,小的那个是第二大值。然后每次比较一队元素,大的那个去和最大值比,如果比最大值大,就把它记为最大的,原来的最大和较小的那个比,大的记为第二大。如果大的那个没有最大值大,那么和第二大的比,如果比它大,就更新第二大的值。这样,每一对元素发生了3次比较,一共是1.5n次
这种方法和求最大最小元素类似
2. http://www.cnblogs.com/phishine/articles/1205351.html
其方法叫做 tournament method, 算法实现如下:
对数组a[1…n] 中元素成对的做比较,每次比较后讲较小的数拿出,形成的数组再继续这样处理,直到剩下最后的一个,就是数组中最小的那个。将这个过程以一个树的形式表现出来,如下图:
![](/assets/blank.gif)
在这个过程中,非树叶节点就是比较的次数,一共进行了n-1 次比较,树根即为最小的元素。而第二小的元素一定是在这个过程中与根节点进行过比较的元素。即上图中5,3和2。这样的节点最多有个,在这些节点中找到最小的元素需要进行
-1次比较。因此总共所需的比较次数为 n-1 +
-1 = n+
-2 次
求无序数组的第二小的元素相关推荐
- 第J题-=数组中等于K的数对(详解) =======给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数
给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0 ...
- 算法导论9.1-1找第二小的元素
文章目录 算法导论9.1-1 1.证明:在最坏情况下,找到n个元素中第二小的元素需要 n+ceil(lgn)-2 次比较.(提示:可以同时找到最小元素) 1.证明 n-1 2.证明 ceil(lg) ...
- 求无序数组的第K(大/小)数的三种方法
题目描述:给定一个无序数组(长度为n)和一个正整数 K,让你求此数组中第K大的数 方法1:最简单的思路,你肯定会想到 先把数组排序,然后再取下标为K的对应数组元素.这种方法肯定是可行的,但是这种方法无 ...
- 在一个无序的int数组上构建一个最小堆的时间复杂度_漫画:寻找无序数组的第k大元素(修订版)...
----- 第二天 ----- 题目是什么意思呢?比如给定的无序数组如下: 如果 k=6,也就是要寻找第6大的元素,这个元素是哪一个呢? 显然,数组中第一大的元素是24,第二大的元素是20,第三大的元 ...
- 数组中的元素赋值给元素_漫画:寻找无序数组的第k大元素
本期封面作者:泰勒太乐 ----- 第二天 ----- 题目是什么意思呢?比如给定的无序数组如下: 如果 k=6,也就是要寻找第6大的元素,这个元素是哪一个呢? 显然,数组中第一大的元素是24,第 ...
- 从当前元素继续寻找_云漫圈 | 寻找无序数组的第k大元素
戳蓝字"CSDN云计算"关注我们哦! 作者:小灰 来源:程序员小灰 本期封面作者:泰勒太乐 ----- 第二天 ----- 题目是什么意思呢?比如给定的无序数组如下: 如果 k ...
- 云漫圈 | 寻找无序数组的第k大元素
戳蓝字"CSDN云计算"关注我们哦! 作者:小灰 来源:程序员小灰 本期封面作者:泰勒太乐 ----- 第二天 ----- 题目是什么意思呢?比如给定的无序数组如下: 如果 k ...
- 遍历数组是什么意思_漫画:寻找无序数组的第k大元素(修订版)
----- 第二天 ----- 题目是什么意思呢?比如给定的无序数组如下: 如果 k=6,也就是要寻找第6大的元素,这个元素是哪一个呢? 显然,数组中第一大的元素是24,第二大的元素是20,第三大的元 ...
- 【算法】快速排序/数组第K小的元素
快速排序 和归并排序一样,也是采用分治(Divide and Conquer)思想.分为三步: 分解:将数组A[p...q]划分成两个数组A[p..r-1]和A[r+1..q],使得A[p..r-1] ...
最新文章
- 小鱼提问1 类中嵌套public修饰的枚举,外部访问的时候却只能Class.Enum这样访问,这是为何?...
- python在linux报错xe6,python出现SyntaxError: Non-ASCII character '\xe6' in file \的错误
- 【2015沈阳现场A】
- js 字符串加减法_JavaScript (+) 加法运算符
- python形参实参
- 如何让FPGA中的SPI与其他模块互动起来
- NPOI随笔——图片在单元格等比缩放且居中显示
- “宜小搭”萌新报到,请多关照!
- WINCE6开机进度条
- Python机器学习:多项式回归与模型泛化005学习曲线
- AI大牛发起神秘字母接龙,起因竟然是……
- 机器学习分类模型评价指标和方法
- Python的Cython在Windows环境下的部署安装
- 【JDK】Mac版安装JDK并配置环境
- 微信小程序开发工具格式化代码快捷键以及更改快捷键
- activex控件无法安装解决方法
- 计算机基础与程序设计自考怎么过
- Charles的基本使用及教程
- 缺陷轰炸和beta测试详解
- docker golang buid rstp2webrtc
热门文章
- 深度学习图片分类CNN模板
- 六、最通俗易懂的JavaScript进阶教程(二)
- 二十三、Python数据建模(上),禁止转载
- 彩票假设 (Lottery Ticket Hypothesis) 在CV、NLP和OOD领域的应用
- 今日arXiv精选 | 23篇顶会论文:ICASSP / ICCV / CIKM / ICME / AAAI
- 多篇顶会论文看DRO (Distributionally Robust Optimization) 最新进展
- 阿里云机器学习PAI构建AI集团军作战,联手Intel在AI软硬件领域发力
- 直播 | 清华大学博士生姚远:对抗语言游戏
- 叮!您有一份来自平安人寿的真AI情书
- 【天池赛事】零基础入门语义分割-地表建筑物识别