本文是[資料結構基礎系列(9):排序]中第9課時[簡單的計數排序]的例程。
#include
#include
#define maxsize 20
#define maxnum 100
typedef
int keytype; //定義關鍵字型別
typedef
char infotype[10];
typedef
struct
//記錄型別
rectype; //排序的記錄型別定義
void countsort(rectype r,int n)
; /*用於計數的c陣列的所有元素初值為0*/
for(i=0; i/*例如,r[i].key為6時,c[6]++,c[r[i].key]是r[i].key出現的次數*/
k=0;
for(j=0; j<=maxnum; j++) /*考察每乙個j*/
for(i=1; i<=c[j]; i++) /*j=r[j].key出現過c[j]個,此即是排序的結果*/
r[k++].key=j;
}int main()
; for (i=0; iprintf("排序前:");
for (i=0; iprintf("%d ",r[i].key);
printf("\n");
countsort(r,n);
printf("排序後:");
for (i=0; iprintf("%d ",r[i].key);
printf("\n");
return
0;}
資料結構例程 簡單的計數排序
本文是 資料結構基礎系列 9 排序 中第9課時 簡單的計數排序 的例程。include include define maxsize 20 define maxnum 100 typedef int keytype 定義關鍵字型別 typedef char infotype 10 typedef s...
資料結構例程 拓撲排序
本文是 資料結構基礎系列 7 圖 中第11課時 拓撲排序 的例程。程式中graph.h是圖儲存結構的 演算法庫 中的標頭檔案,詳情請單擊鏈結 include include include graph.h void topsort algraph g for i 0 in i if g adjlis...
資料結構 計數排序
題目來自灰灰考研 counting sort基本思想 對於給定的輸入序列中的每乙個元素x,確定該序列中值小於x的元素的個數 一旦有了這個資訊,就可以將x直接存放到最終的輸出序列的正確位置上。它建立乙個長度為這個資料範圍的陣列c,c中每個元素記錄要排序陣列中對應記錄的出現個數。下面以示例來說明這個演算...