C語言:桶排序
比如十分制的成績排名
首先需要對陣列進行初始化,全部賦為0(表示0到10分值暫時沒有出現過)
然后用for回圈來輸入值(分數)
將輸入的分數的賦給陣列下標
那么所對應的值加一(表示該分數出現一次)
{ 例如; scanf輸入的值為:9
那么a[9] = 0 —> a[9] = 1;
陣列的下標[0~10]就代表了分數
}
以五個數舉例
如
3,5,5,8,2
輸入后:

輸出:
通過兩層回圈輸出:
第一層回圈控制下標,第二層回圈控制輸出個數(分數出現的次數)
(由低到高還是由高到低按自己意愿)
時間復雜度O(M+N)
(十個數)代碼如下:
#include<stdio.h>
int main(int argc,char*argv[])
{
int a[11]={0};
int i,j,t;
int n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&t);
a[t]++;
}
for(i=10;i>-1;i--)
{
for(j=0;j<a[i];j++)
{
printf("%d ",i);
}
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/140330.html
標籤:python
上一篇:ARChatRoom功能介紹手冊
下一篇:刷題27-分糖果問題
