分治法解決選擇問題——找出第i小的元素

給出一組數據,返回第i小的元素,最常規的思路是遍歷找,或者排好序以後返回等,這裏介紹用分治法解決,用到以前快排裏的一個函數partition,爲了把數組分紅兩部分,A[p,q-1]的元素都小於主元q, A[q+1,r]的元素都大於q, 因此只要比較i這個位置要落在哪一邊就行了 僞代碼以下:ios int Select(int *A, int p, int r, int i)//對數組A[p,r]返
相關文章
相關標籤/搜索