2016第七屆藍橋杯C C B組省賽題解 D題

2021-07-11 01:29:33 字數 736 閱讀 3701

快速排序

排序在各種場合經常被用到。

快速排序是十分常用的高效率的演算法。

其思想是:先選乙個「標尺」,

用它把整個佇列過一遍篩子,

以保證:其左邊的元素都不大於它,其右邊的元素都不小於它。

這樣,排序問題就被分割為兩個子區間。

再分別對子區間排序就可以了。

下面的**是一種實現,請分析並填寫劃線部分缺少的**。

#include void swap(int a, int i, int j) 

int partition(int a, int p, int r)

______________________;

return j;

}void quicksort(int a, int p, int r)

}int main() ;

int n = 12;

quicksort(a, 0, n - 1);

for(i = 0; i < n; i++) printf("%d ", a[i]);

printf("\n");

return 0;

}

partition();中
交換完

後 沒有將第乙個換到中間

我在糾結的是為什麼???

為什麼進行完一次交換是與j交換而不是i  因為j交換的都是小於第乙個的數 所以與j交換;

抽籤 第七屆藍橋杯c c B組

抽籤x星球要派出乙個5人組成的觀察團前往w星。其中 a國最多可以派出4人。b國最多可以派出2人。c國最多可以派出2人。那麼最終派往w星的觀察團會有多少種國別的不同組合呢?下面的程式解決了這個問題。陣列a 中既是每個國家可以派出的最多的名額。程式執行結果為 defff cefff cdfff cdef...

2016第七屆藍橋杯C C B組省賽第四題

快速排序 排序在各種場合經常被用到。快速排序是十分常用的高效率的演算法。其思想是 先選乙個 標尺 用它把整個佇列過一遍篩子,以保證 其左邊的元素都不大於它,其右邊的元素都不小於它。這樣,排序問題就被分割為兩個子區間。再分別對子區間排序就可以了。下面的 是一種實現,請分析並填寫劃線部分缺少的 incl...

湊算式 第七屆藍橋杯c c B組

湊算式b def a 10 c ghi 如果顯示有問題,可以參見 圖1.jpg 這個算式中a i代表1 9的數字,不同的字母代表不同的數字。比如 6 8 3 952 714 就是一種解法,5 3 1 972 486 是另一種解法。這個算式一共有多少種解法?注意 你提交應該是個整數,不要填寫任何多餘的...