国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > C > 正文

數(shù)組中求第K大數(shù)的實現(xiàn)方法

2020-02-24 14:28:07
字體:
供稿:網(wǎng)友

我們的開發(fā)員在開發(fā)項目的時候,也會遇到算法這個問題,今天武林技術(shù)頻道小編就為大家介紹數(shù)組中求第K大數(shù)的實現(xiàn)方法,一起跟著小編來學習,希望對你了解這方面知識有幫助。

問題:有一個大小為n的數(shù)組A[0,1,2,…,n-1],求其中第k大的數(shù)。該問題是一個經(jīng)典的問題,在《算法導論》中被作為單獨的一節(jié)提出,而且其解決方法很好的利用了分治的思想,將時間復(fù)雜度控制在了O(n),這多少出乎我們的意料,此處暫且不表。
該問題還可以變形為:有一個大小為 n的數(shù)組A[0,1,2,…,n-1],求其中前k大的數(shù)。
一字之差,原問題是“第k大”,變形的問題是“前k大”,但是平均時間復(fù)雜度卻都可以控制在O(n),這不由得讓人暗暗稱奇。

我們先分析原問題:有一個大小為 n的數(shù)組A[0,1,2,…,n-1],求其中第k大的數(shù)。
我們先取特例,令k=1,那么就是取最大的數(shù),只要掃描一遍數(shù)組就可以確定該值,如果k=2,則掃描兩邊數(shù)組就可以確定第二大的數(shù),依此類推下去,時間復(fù)雜度是O(k*n),如果k跟n是一個數(shù)量級,那么時間復(fù)雜度就是O(n*n)了,顯然不是最優(yōu)的解法。

考慮分治法,難點在于如何將該問題分解為兩個子問題。
快速排序最基礎(chǔ)的一步:
隨機取某一個數(shù)x,將其與數(shù)組末尾元素交換,然后將比其小的數(shù)交換至前,比其大的數(shù)交換至后。
這一步使某一數(shù)組的快速排序問題分解成兩個子數(shù)組的排序問題,現(xiàn)在我們就依此來解決取第k大的數(shù)這個問題。
設(shè)數(shù)組下表從0開始,至n-1結(jié)束。
1、 隨機取某個數(shù),將其與數(shù)組末尾元素交換。
a)??????? idx=rand(0,n-1);生成[0,n-1]間的隨機數(shù)。
b)??????? Swap(array[idx], array[n-1]);
2、 用末尾元素x,將比x小的數(shù)交換至前,比x大的數(shù)交換至后,并返回此時x在數(shù)組中的位置mid。
3、 如果mid==n-k,那么返回該值,這就是第k大的數(shù)。

如果mid>n-k,那么第k大的數(shù)在左半數(shù)組,且在左半數(shù)組中是第k-(n-mid)大的數(shù)。
如果mid<n-k,那么第k大的數(shù)在右半數(shù)組,而且仍然是第k的數(shù)。

?

?

?

?


#include "iostream"
using namespace std;
int random_partion(int *p, int n)
{
???? int idx=rand()%n;
???? swap(p[idx], p[n-1]);
???? int i=-1;??? //i表示最后一個小于p[n-1]的元素的位置
???? int j=0;???? //j用來掃描數(shù)組
???? for(j=0; j<n; j++)
???? {
??????????? //將小于p[n-1]的數(shù)交換到前半部分
??????????? if(p[j]<p[n-1])
??????????? {
????swap(p[++i], p[j]);
??????????? }
???? }
???? swap(p[++i], p[n-1]);
???? return i;
}
int getMaxK(int *p, int n, int k)
{
?int mid;
???? if(k<=0)
??????????? return -1;
???? if(n<k)
??????????? return -1;
? mid=random_partion(p, n);?? //對原數(shù)組進行一次劃分
???? if(mid == n-k)????? //如果mid==n-k,那么返回該值,這就是第k大的數(shù)
?? return p[mid];
???? else if(mid<n-k)
?? return getMaxK(p+mid+1, n-mid-1, k);? //如果mid<n-k,那么第k大的數(shù)在右半數(shù)組,而且仍然是第k大數(shù)
???? else
?? return getMaxK(p, mid, k-(n-mid));?? //如果mid>n-k,那么第k大的數(shù)在左半數(shù)組,且在左半數(shù)組中是第k-(n-mid)大的數(shù)
}
int main(void)
{
?int num,a[] = {12012, 3, 945, 965, 66, 232, 65, 7, 8, 898, 56, 878, 170, 13, 5};
?num=getMaxK(a, 15, 4);
?printf("%d/n",num);
?system("pause");
?return 0;
}

關(guān)于數(shù)組中求第K大數(shù)的實現(xiàn)方法武林技術(shù)頻道小編就為大家介紹到這里了,相信認真看完這篇文章的朋友有一定的了解了,如果你想了解更多,那就關(guān)注武林技術(shù)頻道吧!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产精品自产拍在线观看2019| 国产精品探花在线| 五月婷婷在线观看| 老师我好爽再深一点的视频| 91美女主播在线视频| 国产成人精品久久一区二区小说| 午夜av电影| 精品视频二区三区| gogo在线高清视频| 国产在线超碰| 97操碰视频| 久热中文字幕精品视频在线| 天堂中文字幕在线| 精品福利影院| 黄色在线视频观看网站| 国产网站av| 亚洲图区欧美| 国产免费人人看| 国产叼嘿网站免费观看不用充会员| 国产小视频福利在线| 永久免费在线观看| 九九在线免费视频| 91涩漫在线观看c| 欧美性猛交xxxx免费看蜜桃| 中文字幕视频免费在线观看| 亚洲wwwwww| 国产黄色片大全| 成在在线免费视频| 四虎一区二区三区| 91麻豆精品国产91久久| 国产69精品久久app免费版| 精品视频一二区| 日本中文字幕视频在线| www.狠狠插| 国产精品视频一区二区图片| 全网国产福利在线播放| 国产黄色网页| 国产一区二区在线|播放| 先锋影音av中文字幕| 国产高清大尺度一区二区不卡| 日本免费视频www| 精品偷拍激情视频在线观看| 五月综合网站| 国产精品作爱| 国产在线色视频| 在线免费看av| 精品推荐国产麻豆剧传媒| 国产日产精品久久久久久婷婷| 国产精品一区二区三区四区色| 国产成a人亚洲精v品| 国产精品毛片一区二区三区四区| 尤物在线视频| 国产欧美日韩精品综合| 国产高清自拍视频在线观看| 国产精品黄页网站在线播放免费| 最好2018中文免费视频| 最近免费中文字幕在线第一页 | 午夜视频99| 国产一级黄色| 国产大学生粉嫩无套流白浆| 精精国产xxxx视频在线动漫| 在线视频xx| 香蕉视频在线观看网站| 欧美性xxxx交| 中文字幕乱在线伦视频乱在线伦视频 | 丁香婷婷激情| 最新国产在线精品91尤物| 国产三级在线看| av手机天堂| 国产真实伦在线观看| 国产午夜在线| 性网站在线观看| 午夜国产在线| 天天激情综合| √天堂中文在线| av手机免费在线观看| 成在在线免费视频| 亚洲综合天堂网| 五月婷婷导航| xxx国产精品| 国产二区视频| 中文字幕免费在线视频| 永久免费网站在线| 国产香蕉免费精品视频| 免费高清av| 亚洲尤物在线视频| 国产a级网站| 国产一级免费黄色片| www.操操操| 国产精品入口麻豆完整版| www.狠狠色.com| 一色桃子av在线| 国产成人午夜| 国产丝袜护土调教在线视频| 牛牛热在线视频| av免费在线观| 在线观看免费高清完整| 国产亚洲精品拍拍拍拍拍| 九九精品视频在线观看九九| 伊人av免费在线观看| 国产日韩欧美一区二区三区视频| 国产中文字幕在线视频| 思思99精品视频在线观看| 91欧洲在线视精品在亚洲| 成人免费一区二区三区视频网站| 天天干天天操天天爽| 伊人影院在线视频| 伊人久久青青草| 在线播放国产区| 性国产高清在线观看| 天天干天天操天天爽| av在线日韩国产精品| 亚洲欧美久久婷婷爱综合一区天堂 | 中文字幕中文字幕在线中高清免费版 | 免费影视观看网站入口| 亚洲精品视频区| 天堂中文在线观看| www.av在线| 国产麻豆精品入口在线观看| 最近中文字幕mv免费高清在线| 最新天堂资源在线| 午夜不卡视频| 国产日产一区二区| 18被视频免费观看视频| gogo在线高清视频| 成人超碰在线| 97福利电影| 九九视频精品在线| 国产麻豆一级片| 97在线免费| 男人天堂99| 国产成免费视频| 免费不卡中文字幕视频| 国产精品bbw一区二区三区| 亚洲日本一区二区三区在线观看| 毛片在线视频| 国产网站av| 天天噜天天色| 国产一区电影| 日韩亚洲一区中文字幕| 国产无遮挡又黄又爽免费软件| 在线免费看黄网站| 国产视频你懂的| 青草在线视频在线观看| 国产激情99| 国产精品自拍亚洲| 四虎成人免费| 2021天堂中文幕一二区在线观| 欧美日韩在线中文字幕| 国产福利小视频在线观看| 国产中文在线观看| 精品国产一区二区三区久久久狼牙| www狠狠操| av在线首页| 在线看a视频| 精品剧情v国产在线观看| 国产天堂在线观看| 综合激情丁香| 99热在线观看免费| 导航福利在线| 99热在线观看免费| 资源视频在线播放免费| 国产男女无套在线播放| 黄色av网址在线免费观看| 亚洲91av| 亚洲免费国产| 精精国产xxxx视频在线中文版 | 一区二区精品区| 中文在线官网天堂| 亚洲天堂电影在线观看| 精品卡1卡2卡三卡免费网站| ·天天天天操| eeuss影院在线播放| 热99re久久精品这里都是免费| 热99re久久精品精品免费| 在线观看中文字幕| www.av在线播放| 国产乱码在线| 国产福利资源| 在线色视频网| 青青草免费在线视频| 开心快乐六月丁香婷婷| 国产免费av网站| 国产精品久久久久久久久鸭| 国产传媒在线播放| jizz性欧美| 国产亚洲精品久久久久久移动网络| 中文字幕国产在线| 四虎国产精品永久在线| 久久国产热视频| 国产精品欧美韩国日本久久| 96久久久久久| 国产在线拍揄自揄拍视频| 国产网红在线| 欧美日韩性视频一区二区三区| 国产香蕉尹人视频在线| 日本一级理论片在线大全| 综合激情亚洲| 六月天色婷婷| 亚洲精品男人|