C 輸出前K大的數

2021-08-28 18:47:58 字數 1127 閱讀 6171

總時間限制: 

10000ms

單個測試點時間限制: 

1000ms

記憶體限制: 

65536kb

描述給定乙個陣列,統計前k大的數並且把這k個數從大到小輸出。

輸入第一行包含乙個整數n,表示陣列的大小。n < 100000。

第二行包含n個整數,表示陣列的元素,整數之間以乙個空格分開。每個整數的絕對值不超過100000000。

第三行包含乙個整數k。k < n。

輸出從大到小輸出前k大的數,每個數一行。

樣例輸入

10

4 5 6 9 8 7 1 2 3 0

5

樣例輸出

987

65

首先借助了快速排序的思想,一次快速排序之後,存在乙個key牌,左邊的數都小於這個key,右邊的數都大於key,所以只要右邊的數的個數剛好等於k那麼就能找到這個數,在對右邊的數進行排序就行

定義arrangeright為操作使得右邊的數為k,如果右邊的數大於k,那麼對右邊部分遞迴呼叫這個函式

如果右邊的數小於k,那麼對左邊e-j-s個數進行操作,使得右邊的數等於k

最後在對k個數進行排序,時間複雜度是o(n+klogk)

輸出前k大的數

010 輸出前k大的數 總time limit 10000ms 單個測試點時間限制 1000ms memory limit 65536kb description 給定乙個陣列,統計前k大的數並且把這k個數從大到小輸出。input 第一行包含乙個整數n,表示陣列的大小。n 100000。第二行包含n...

輸出前 k 大的數

總時間限制 10000ms 單個測試點時間限制 1000ms 記憶體限制 65536kb 描述 給定乙個陣列,統計前k大的數並且把這k個數從大到小輸出。輸入第一行包含乙個整數n,表示陣列的大小。n 100000。第二行包含n個整數,表示陣列的元素,整數之間以乙個空格分開。每個整數的絕對值不超過100...

輸出前k大的數

總時間限制 10000ms單個測試點時間限制 1000ms記憶體限制 65536kb noi 描述給定乙個陣列,統計前k大的數並且把這k個數從大到小輸出。輸入第一行包含乙個整數n,表示陣列的大小。n 100000。第二行包含n個整數,表示陣列的元素,整數之間以乙個空格分開。每個整數的絕對值不超過10...