11 演算法之快速排序

2021-09-14 08:24:25 字數 845 閱讀 2083

陣列中的第k個最大元素

在未排序的陣列中找到第 k 個最大的元素。請注意,你需要找的是陣列排序後的第 k 個最大的元素,而不是第 k 個不同的元素。

示例 1:

輸入: [3,2,1,5,6,4] 和 k = 2

輸出: 5

示例 2:

輸入: [3,2,3,1,2,4,5,5,6] 和 k = 4

輸出: 4

int target=0;

class solution

private:

intpartition

(vector<

int>

& nums,

int beg,

int end)

nums[beg]

= nums[end]

;while

(beg < end&&nums[beg]

<= k)

nums[end]

= nums[beg];}

nums[end]

= k;

return end;

}void

qsort

(vector<

int>

& nums,

int beg,

int end,

int k)

//if(pos+1<=end)

qsort

(nums, pos+

1, end, k)

;//if(pos-1>=k)

qsort

(nums, beg, pos -

1, k);}

}};

啊哈!演算法 1 1 快速排序

1.基本思路 就是選定乙個基準數,然後從兩端開始同時像中間探測,如果是要公升序排序,且選定第乙個為基準數的話,則當後面探測到比基準數小的就停下,然後就讓前面的走,前面當探測到比基準數大的就停下,然後交換,最後兩個探測針相遇時,就跳出迴圈,並且讓基準數放到中間去。2.注意事項 注意,在讓前面和後面探測...

演算法 排序演算法之快速排序

很受打擊啊啊啊啊啊!這道排序題我很久之前就做過,而且當時沒用20分鐘就搞定了,可是,今天在公司做完手上的活之後打算刷題時,又心血來潮的想重做一遍,心想反正也花不了多少時間,結果。血崩了。要求 對於乙個int陣列,請編寫乙個快速排序演算法,對陣列元素排序。給定乙個int陣列a及陣列的大小n,請返回排序...

演算法 排序演算法之快速排序

快速排序是由東尼 霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要 nlogn 次比較。在最壞狀況下則需要 n2 次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他 nlogn 演算法更快,因為它的內部迴圈 inner loop 可以在大部分的架構上很有效率地被實現出來。快速排序...