嘿,我現在正在爲一門考試而學習,而且我似乎無法理解這個概念。 問題是,如果你給出了一系列學生記錄,記錄的成員是學生的名字和他們的成績,那麼你如何按年級對它進行排序。教授給出了他稱之爲「分佈式計數排序」的例子。我無法理解它,並希望有人可以給我的僞代碼或算法下面的代碼, 謝謝:)如何根據學生的成績排列一系列學生記錄
Function Distribution_counting_sort(S, n){
//Input: a student array S of n records
//Output: a sorted array (wrt grade) NS
int count[101]; /*init to 0’s */
/* counting */
for (i = 0; i < n; i++) count[S[i].grade]++;
/* accumulating */
count[0]--;
for (i = 1; i < 101; i++) count[i] = count[i -1] + count[i];
/* distribution */
for (i = 0; i < n; i++) NS[count[S[i].grade]--] = S[i];
我認爲這將有所幫助,謝謝。我認爲它可能是相似的,但後來並不確定,因爲這是講座結束時的一個附註,並沒有提到有關桶式排序的任何內容。 – Blackbinary 2010-12-09 18:26:45
@Blackbinary:我在答案中增加了更多細節,以防你沒有重新加載... :-) – 2010-12-09 18:37:52