2018C語言B組 5 快速排序

2021-09-13 09:27:25 字數 682 閱讀 8577

以下**可以從陣列a中找出第k小的元素。

它使用了類似快速排序中的分治演算法,期望時間複雜度是o(n)的。

請仔細閱讀分析原始碼,填寫劃線部分缺失的內容。

注意:只填寫劃線部分缺少的**,不要抄寫已經存在的**或符號。

#include #includeint quick_select(int a, int l, int r, int k) 

int i = l, j = r;

while(i < j)

while(i < j && a[j] > x) j--;

if(i < j)

} a[i] = x;

p = i;

if(i - l + 1 == k) return a[i];

// if(i - l + 1 < k) return quick_select(___________); //填空

if(i - l + 1 < k) return quick_select(a,i+1,r,k-(i-l+1));

else return quick_select(a, l, i - 1, k);}

int main()

; printf("%d\n", quick_select(a, 0, 14, 5));

return 0;

}

2018C語言助教總結

很榮幸得到各位老師的認可,擔任計科3班和4班的c語言課程助教,很感謝車老師和牛老師一學期的幫助,使得我更好的擔任助教一職。我班學生59名,很愉快的與同學們度過乙個美好的學期,其實作為助教同樣從學生們身上學到很多知識,感謝各位同學對助教工作的配合和支援。我們班總共有三次作業,第0,1次作業滿分100分...

2012藍橋C語言B組

微生物增殖 假設有兩種微生物 x 和 y x出生後每隔3分鐘 一次 數目加倍 y出生後每隔2分鐘 一次 數目加倍 乙個新出生的x,半分鐘之後吃掉1個y,並且,從此開始,每隔1分鐘吃1個y。現在已知有新出生的 x 10,y 89,求60分鐘後y的數目。如果x 10,y 90 呢?本題的要求就是寫出這兩...

快速排序C語言

就感覺,自己對這些個排序.至少,腦袋裡還沒有.哎,我老是不專心呢.加油吧.說說快速排序吧.這東西,原理就是不斷地將乙個陣列分成3部分.保持所有陣列處在這種狀態,最終完成排序.這些思想,還沒有掌握.加油吧,我還能說什麼?說些這個,呵呵.這段 起初不懂.後來,隨著不斷手工模擬,發現,採用了很多技巧.也難...