xyjzsh
O(n)的时间内找到第k个最大值(最小值)的算法
下面介绍一种在O(n)的时间内找出第k个最大值(最小值)的方法
该方法和快速排序相似。不同在于每次只出理一边。
伪代码如下:
Random-select(A,p,r,i)//找到A中的第i个最小值
if p==r
then return a[p]
q = random-partition(A,p,r)
k = p-q+1
if(i==k)
then return A[q]
else if i<k
then return random-select(A,p,q-1,i)
else return random-select(A,q+1,r,i-k)
这个算法很不错。
posted on 2010-12-02 11:02
呆人
阅读(926)
评论(0)
编辑
收藏
引用
所属分类:
算法
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
重载标准输出符号operator<<
matlab生成dll后在vc中脱离matlab环境执行
matlab生成dll后在vc中脱离matlab环境执行
vs2008中调用matlab生成的dll
插入排序vs希尔排序
[算法题]输出从1到1000的数[转载]
同时求出最大值最小值的方法
O(n)的时间内找到第k个最大值(最小值)的算法
浅谈排序算法
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
<
2010年12月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
导航
C++博客
首页
新随笔
联系
聚合
管理
统计
随笔 - 59
文章 - 0
评论 - 11
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
git使用(1)
(rss)
gtest研究(1)
(rss)
sqlserver2008(3)
(rss)
STL学习系列(1)
(rss)
编程习惯系列(5)
(rss)
多线程(1)
(rss)
感悟(1)
(rss)
书评(2)
(rss)
数据结构(12)
(rss)
算法(9)
(rss)
完成端口(1)
(rss)
随笔档案
2013年2月 (1)
2012年4月 (1)
2012年2月 (1)
2011年12月 (1)
2011年11月 (3)
2011年10月 (1)
2011年8月 (2)
2011年7月 (1)
2011年5月 (4)
2011年4月 (2)
2011年3月 (3)
2011年2月 (2)
2011年1月 (5)
2010年12月 (11)
2010年11月 (13)
2010年10月 (8)
搜索
最新评论
1. re: do{}while(0)的好处【转】
说的好。哈哈
--xiaomu
2. re: c++ 中关于int,unsigned int , short的关系与应用
评论内容较长,点击标题查看
--婷
3. re: vs2008只生成dll,没有生成lib的解决方案
非常感谢,解决了我的大问题。
--jasion
4. re: 读写锁的实现
@joy
你好,谢谢你,(*^__^*) 嘻嘻……,我看了一下代码写操作确实有饿死的可能,然后我重新修改了一下代码,有空你看看哈。(*^__^*) 嘻嘻……还请多赐教哦~~
-- 呆人
5. re: 读写锁的实现[未登录]
写操可能会饿死
--joy
阅读排行榜
1. c++ 中关于int,unsigned int , short的关系与应用(21900)
2. memcpy,_tcscpy_s的使用(12797)
3. 1.VC++中的char,wchar_t,TCHAR(转载)(8444)
4. vs2008中调用matlab生成的dll(4558)
5. 宏定义中字符串连接操作(4495)
评论排行榜
1. c++编程习惯(1)(2)
2. 编程习惯(2)(2)
3. 读写锁的实现(2)
4. do{}while(0)的好处【转】(1)
5. vs2008只生成dll,没有生成lib的解决方案(1)
Powered by:
C++博客
Copyright © 呆人