每天学习算法 一

从今天开始每天学习两种算法

第一天学习的是《啊哈!算法》 是一本通俗易懂的算法书籍

算法一:简易桶排序

核心思想:创建数组,使用数组对数值进行排序,例如数值100以内排序,首先创建一个数组 数组含101个值 0~100 例如 int a[101] ,(数组里面的值就是我们的“桶”了)然后利用循环,把对应的值给到对应的桶里,例如5就放在数组 a[5]里面,有一个5的值桶的值就+1,最后再对桶的值编号值进行顺序输出。得出排序的结果

缺点:如果数值过大,比如需要排序1到2000000里的值,就需要创建2000000多的变量值的桶,极其耗费内存。若数值出现名称无法兼顾数值所代表的名称。

#include <stdio.h> 
int main()
{
       int a[101],i,j,t;
       for(i=0;i<=10;i++)
               a[i]=0;  //初始化为0 
            for(i=1;i<=5;i++)  //循环读入5个数 
              { 
                      scanf("%d",&t);  //把每一个数读到变量t中
                      a[t]++;  //进行计数 
               }
           for(i=0;i<=10;i++)  //依次判断a[0]~a[10]
             for(j=1;j<=a[i];j++)  //出现了几次就打印几次             
              printf("%d ",i); 
               return 0;
}        
原文地址:https://www.cnblogs.com/zjfman/p/11408619.html