利用快速排序的思想·去做
#include
using namespace std;
int findkthmax(int*list, int left, int right, int k);
int main()
return 0;
}int findkthmax(int*list, int left, int right, int k)
list[low] = key;
/*實現一次快速排序*/
int l = right - low + 1;
if (l == k) //若key處恰好為第k大數,直接返回
return key;
else if (l < k)
/*lk說明第k大的數在右邊序列中,位置還是第k大的數*/
findkthmax(list, low + 1, right, k);
}
分治法查詢第k小 大的數
1.問題 數學語言 給無序序列集中有n個元素,查詢次數m和乙個整數k,1 k n,找出這n個元素中第k大的元素。2.解析 利用快速排序,可以從序列中取乙個中點mid,然後把序列分成小於等於mid和大於等於mid的兩部分,由兩個部分的元素個數和k的大小關係可以確定這個數是在哪個部分,以此類推,進行遞迴...
尋找第K大的數
題目描述 要求在n個不重複的整數中,找出第k大的整數 其中0輸入第一行為兩個正整數n k 第二行為n個整數,輸入保證這n個整數兩兩相異,每個整數的範圍在 1000000到1000000之間 輸出輸出第k大的整數值 樣例輸入 5 33 2 4 5 1 樣例輸出 3 如下 include include...
尋找第K大的數
在一堆資料中查詢到第k個大的值。名稱是 設計一組n個數,確定其中第k個最大值,這是乙個選擇問題,解決這個問題的方法很多。所謂 第 前 k大數問題 指的是在長度為n n k 的亂序陣列中s找出從大到小順序的第 前 k個數的問題。解法1 我們可以對這個亂序陣列按照從大到小先行排序,然後取出前k大,總的時...