日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

得到第K个大的数算法研究

發布時間:2025/3/15 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 得到第K个大的数算法研究 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文為原創,如需轉載,請注明作者和出處,謝謝!

????
第一種算法是最容易想到的,就是利用快速排序的思想,將一個數組分成以某一個數X為軸,左邊的所有的數都比X小,而右邊的數都比X大。但我快速排序不同的是,在這個算法中只考慮X的一邊,而不是兩邊都考慮。?

?? 如果X的位置是i,那么要得到第k個數,如果k<=i, 那么這個數一定在i的左邊,否則在i的右邊。

源碼如下:

#include?<stdio.h>
#include?<stdlib.h>
int?new_random(int?min,?int?max)
{
????return?(min?+?(int)(((float)rand()/RAND_MAX)*(max?-?min)));
}
void?swap(int?*a,?int?*b)
{
????int?c?=?*a;
????*a?=?*b;
????*b?=?c;
}

int?partition(int?A[],?int?p,?int?r)
{
????int?i?=?p?-?1,?j;
????for(j?=?p;?j?<?r;?j++)
????{
????????if(A[j]?<=?A[r])
????????{
????????????i++;
????????????swap(&A[i],?&A[j]);
????????}
????}
????swap(&A[i?+?1],?&A[r]);
????return?i?+?1;
}

int?randomize_partition(int?A[],?int?p,?int?r)
{
????int?i?=?new_random(p,?r);
????swap(&A[i],?&A[r]);
????return?partition(A,?p,?r);
}

//第一種算法
int?randomized_select(int?data[],?int?p,?int?r,?int?k)
{
????if(k?>?(r?-?p?+?1))?return?0;
????if(p?==?r)?return?data[p];
????int?i?=?randomize_partition(data,?p,?r);
????//int?i?=?partition(data,?p,?r);?//不好使,死循環,?必須用隨機數,在第二步時總是在最大數處劃分

????int?count?=?i?-?p?+?1;
????if(k?<=?count)
????????return?randomized_select(data,?p,?i,?k);
????else
????????return?randomized_select(data,?i?+?1,?r,?k?-?count);
}

??? 另外一種對這種算法做了一下改進,即將數組每5個數一組進行排序,然后取得它的中位數,再對這些中位數進行排序。然后先出的軸X最比較好的,因此X的左邊和右邊的數總是很平均,所以平均查找速度更快。算法如下:

void?quicksort(int?data[],?int?b,?int?e)
{
????if(b?<?e)
????{
????????int?k?=?partition(data,?b,?e);
????????quicksort(data,?b,?k?-?1);
????????quicksort(data,?k?+?1,?e);
????}
}

int?partition1(int?A[],?int?p,?int?r,?int?x)
{
????int?i?=?p?-?1,?j;
????for(j?=?p;?j?<=?r;?j++)
????{
????????if(A[j]?<=?x)
????????{
????????????i++;
????????????swap(&A[i],?&A[j]);
????????}
????}
????A[i?+?1]?=?x;
????return?i?+?1;
}
//第二種算法
int?select_new(int?data[],?int?p,?int?r,?int?k)
{
????if(r?-?p?<?75)
????{
????????quicksort(data,?p,?r);
????????return?data[p?+?k?-?1];
????}???
????int?i;
????for(i?=?0;?i?<=?(r?-?p?-?4)?/?5;?i++)
????{
????????quicksort(data,?p?+?5?*?i,?p?+?5?*?i?+?4);
????????swap(&data[p?+?5?*?i?+?2],?&data[p?+?i]);
????}
????int?x?=?select_new(data,?p,?p?+?(r?-?p?-?4)?/?5,?(r?-?p?-?4)/10);?//?得到更好的軸X
????i?=?partition1(data,?p,?r,?x);
????int?count?=?i?-?p?+?1;?
????if(k?<=?count)
????????return?select_new(data,?p,?i,?k);
????else
????????return?select_new(data,?i?+?1,?r,?k?-?count);
}

int?main()
{
????int?data[]?=?{3,?1,?7,?34,?8,?11,?678,?12,?-1,?100};
????printf("%d\n",?randomized_select(data,?0,?9,?2));
????int?data1[]?=?{3,?1,?7,?34,?8,?11,?678,?12,?-1,?100};
????printf("%d\n",?select_new(data1,?0,?9,?2));
???
?????return?0;
} 本文轉自銀河使者博客園博客,原文鏈接http://www.cnblogs.com/nokiaguy/archive/2008/05/12/1193986.html如需轉載請自行聯系原作者
銀河使者

總結

以上是生活随笔為你收集整理的得到第K个大的数算法研究的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男女高h视频 | 国产精品久久久久久久久晋中 | 一区二区亚洲视频 | 老熟妇毛片 | 97久久精品视频 | 韩国毛片视频 | 激情全身裸吻胸 | 欧洲精品码一区二区三区免费看 | 欧美成人精品欧美一级乱 | 视频一区二区三区四区五区 | 国产精品电影在线观看 | 欧美精品免费一区二区 | 国产熟女高潮视频 | 久久久亚洲成人 | 亚洲免费视频一区 | 日韩色婷婷 | 7mav视频 | 三上悠亚一区二区三区 | 一本色道久久综合无码人妻 | 日韩久久免费视频 | 激情国产视频 | 999国产 | 韩国三级hd中文字幕的背景音乐 | 五月天丁香社区 | 日韩精品一区二区免费视频 | 伊人久久视频 | 91色网站| 国产一区二区三区免费观看视频 | 性生交生活影碟片 | 秘密基地动漫在线观看免费 | 视色影视| 精品久久久精品 | 久久伊人精品 | 肉肉av福利一精品导航 | 欧美一级片免费在线观看 | 少妇粉嫩小泬喷水视频www | 国产av一区二区三区 | jzz国产| 欧美一区二区三区小说 | 国产乱淫av片 | 日韩熟女一区二区 | 日本女优在线看 | 国产人妻久久精品一区二区三区 | 亚洲第一视频区 | 日本成人免费视频 | 熟妇人妻系列aⅴ无码专区友真希 | 成人做爰66片免费看网站 | 台湾黄色网址 | 亚洲av最新在线网址 | 91精品日韩 | 激情四射av| 毛片综合| 91天堂网 | www.4hu95.com四虎 极品在线视频 | 国产成人综合久久 | 午夜伦理福利视频 | 永久免费在线观看视频 | 色av吧 | 91麻豆精品一区二区三区 | 天堂av资源在线 | 浮生影视在线观看免费 | 国产高潮失禁喷水爽到抽搐 | 激情小说激情视频 | 日韩中文无 | 日本少妇xxxxx | 久久国产精品波多野结衣av | 五月激情片 | 老司机在线免费视频 | 欧美三级图片 | 一级坐爱片 | 尤物视频最新网址 | 熟女丰满老熟女熟妇 | 九九精品在线观看视频 | av中文在线 | av在线小说 | 国产swag在线观看 | 日韩黄色在线视频 | 激情综合小说 | 亚欧在线免费观看 | 中国在线观看免费高清视频播放 | 一个人看的www视频在线观看 | 亚洲在线不卡 | 友田真希一区二区 | 伊人影院中文字幕 | 国产精品国产三级国产专区51区 | 男女在线观看视频 | 日韩高清在线观看一区 | 免费在线观看的黄色网址 | 久久久久国产精 | aaa一级黄色片 | 国产国语videosex另类 | 在线不卡 | 欧美精品乱码 | 娇小萝被两个黑人用半米长 | 少妇影院在线观看 | 麻豆传媒网页 | 久久黄色免费视频 | 小毛片网站 | 欧美伊人影院 |