排序算法一:桶排序
阿新 • • 發佈:2017-06-21
family getch 電子郵箱 -s class csharp soft n) 郵件
在我們的生活的這個世界到處都是被排序過的東西。站隊的時候會按照身高排序,考試的名次需要按照分數排序,網上購物的時候會按照價格排序,電子郵箱中的郵件按照時間排序……可以說排序無處不在。今天簡單講講最快最簡單的排序——桶排序。
嘗試一下輸入n個0~1000之間的整數,將它們從大到小排序。
代碼實現如下:
#include <stdio.h> int main() { //桶排序 //先確定變量 //賦初始值 //循環輸入數值 //循環輸出數值 printf("桶排序\n"); int book[1001], i, j, t, n; for (i = 0; i <= 1000; i++) book[i] = 0; //初始化為0 printf("請輸入數值個數:"); scanf("%d", &n); for (i = 1; i <= n;i++) { //循環輸入n個數 printf("第%d個數:",i); scanf("%d", &t); //把每個數讀到變量t中 book[t]++; //進行計數 } printf("排序結果:\n"); for (i = 1000; i >= 0; i--) //依次判斷編號1000~0的桶 for (j = 1; j <= book[i]; j++) //出現了幾次就將桶的編號打印幾次 printf("%d\t",i); getchar(); //用來暫停程序,以便查看程序輸出的內容 getchar(); return 0; }
輸入以下數據進行驗證:
10
8 100 50 22 15 6 1 1000 999 0
運行結果是:
排序算法一:桶排序