1046 最小的K個數

2021-07-16 13:03:08 字數 571 閱讀 4704

時間限制: 1 sec  

記憶體限制: 128 mb

提交: 139  

解決: 133 [

提交][

狀態][

討論版]

輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。

每個測試案例包括2行:

第一行為2個整數n,k(1<=n,k<=200000),表示陣列的長度。

第二行包含n個整數,表示這n個數,陣列中的數的範圍是[0,1000 000 000]。

對應每個測試案例,輸出最小的k個數,並按從小到大順序列印。

8 4

4 5 1 6 2 7 3 8

1 2 3 4

#includeusing namespace std;

void insertionsort(int a,int n)

{ for(int i=1;i0&&temp>n>>k;

for(int i=0;i>a[i];

insertionsort(a,n);

for(int j=0;j

1046 最小的K個數

輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,每個測試案例包括2行 第一行為2個整數n,k 1 n,k 200000 表示陣列的長度。第二行包含n個整數,表示這n個數,陣列中的數的範圍是 0,1000 000 000 對應每個...

最小的K個數

問題描述 給定的n個整數,計算其中最小的k個數。最直觀的解法莫過於將n個數按公升序排列後輸出前k個。但是就效率來看,這種方法並不是最理想的。一種改進方法是借助快速排序中對陣列的劃分,以第k個元素對陣列進行劃分,使得比第k個數字小的數字都在其左邊,比其大的數字都在它的右邊。void swap int ...

最小的K個數

從 陣列中出現次數超過一半的數字 得到啟發,同樣可以基於partition函式來解決。一 o n 演算法 void getleastnumbers int input,int n,int output,int k else for int i 0 i k i output i input i 二 o...