简单的桶排序

#include<stdio.h>
int main()
{
int i,j,n,t;
int tong[11];
printf(" 请输入数字个数 :");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
tong[i]=0;
}

for(i=1;i<=n;i++)
{
scanf("%d",&t);
tong[t]++;
}

for(i=1;i<=n;i++)
{
printf("tong[%d]=%d\n",i,tong[i]);
}
return 0;
}

#include<stdio.h>
int main()
{
int i,j,n,t;
int tong[11],num[11];
printf(" 请输入数字个数 :");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
tong[i]=0;
num[i]=0;
}

for(i=1;i<=n;i++)
{
scanf("%d",&num[i]);
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(num[i]==j)//如果有几号就把几号桶加一
tong[j]++;
}

for(i=1;i<=n;i++)
{
printf("tong[%d]=%d\n",i,tong[i]);
}
return 0;
}

时间: 2024-11-06 22:15:58

简单的桶排序的相关文章

【C#】1.算法温故而知新 - 简单的桶排序

缺点: 1.不适用于小数 2.当数值过多,太浪费空间,比如数值范围为0~99999,那需申请100000个变量,也就是要写成a[1000000]. 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { public class Program { public static void Main(strin

啊哈!算法 学习1 排序 - 简单的桶排序

//排序10个0-100之间数字 //定义int数组 //这里生成包含101个个数数组是以为要对应输入的值 到对应到数组的index 譬如输入10 对应a[10] int a[101]; //数组赋值 生成 for (int i = 0; i < 101; i++) { a[i] = 0; } //声明变量 int x; //循环输入10个数字 for (int i = 0; i < 10; i++) { //读取输入值 scanf("%d",&x); //输入值对

最快最简单的排序算法:桶排序

在我们生活的这个世界中到处都是被排序过的.站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东西都需要排序,可以说排序是无处不在.现在我们举个具体的例子来介绍一下排序算法. 首先出场的我们的主人公小哼,上面这个可爱的娃就是啦.期末考试完了老师要将同学们的分数按照从高到低排序.小哼的班上只有5个同学,这5个同学分别考了5分.3分.5分.2分和8分,哎考的真是惨不忍睹(满分是10分).接下来将分数进行从大到小排序,排序后是8

【啊哈!算法】最快最简单的排序——桶排序

转自:http://bbs.ahalei.com/thread-4399-1-1.html 最快最简单的排序——桶排序 在我们生活的这个世界中到处都是被排序过的.站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东西都需要排序,可以说排序是无处不在.现在我们举个具体的例子来介绍一下排序算法. 首先出场的我们的主人公小哼,上面这个可爱的娃就是啦.期末考试完了老师要将同学们的分数按照从高到低排序.小哼的班上只有5个同学,这5个

最简单快速的排序法之桶排法

前提:0-100内的随机数N个,实现从小到大(从大到小)排序. 实现:新建一个长度为101的数组,value初始化为0.数组每个key代表0-100中的数字,value值表示0-100中任意一个数组的出现次数. 通俗点说就是每个key代表一个桶,我们有101个桶,每个桶上表上数字0-100.把要排序的数字扔到对应的桶里,桶里扔一个数字时相应的key的value值就+1,表示桶里有几个数字. 代码实现: $numbers = array(63,6,98,54,88,5,89,16,59,10,31

世界上最快最简单的排序——桶排序

今天又是无趣的寒假之中的一天,但是,我准备好好开始学习算法了,我是想每天至少学习一种算法,也不知道能不能坚持下来,反正先试试,万一呢?! 世界上有好多东西都是需要排序的 栗子one:给你一串在十以内的数字进行降序排列 最好就是在输入时就进行归类,可以设一个a[11]的数组,放进去,最后再通过循环输出 #include <stdio.h> int main() { int a[11],i,j,t; for(i=0;i<=10;i++) a[i]=0; //初始化为0 for(i=1;i&l

三种线性排序算法(计数、基数、桶排序)的简单实现

一.计数排序 计数排序假设n个输入元素中的每一个都是介于0到k之间的整数.此处k为某个整数(输入数据在一个小范围内). 基本思想: 计数排序的基本思想是对每一个输入元素x,确定出小于x的元素的个数.然后再将x直接放置在它在最终输出数组中的位置上. 如下图所示: 由于数组中可能有相等的数,在处理时需要注意. 时间复杂度和空间复杂度分析 算法总时间Θ(k + n).当k=O(n)时,计数排序的运行时间是Θ(n). 空间复杂度是O(n+k).需要两个辅助数组:存放排序结果的数组B[n],存放临时结果的

桶排序[最快最简单排序]

5个数要排序,5,3,5,2,8 首先我们需要申请一个大小为11的数组int a[11].现在你已经有了11个变量,编号从a[0]~a[10].刚开始的时候,我们将a[0]~a[10]都初始化为0,表示这些分数还都没有人得过. 下面开始处理每一个人的分数,第一个人的分数是5分,我们就将相对应的a[5]的值在原来的基础增加1,即将a[5]的值从0改为1,表示5分出现过了一次.依次最后结果 #include <stdio.h> int main() { int a[11],i,j,t; for(i

基数排序与桶排序,计数排序【详解】

桶排序简单入门篇^-^ 在我们生活的这个世界中到处都是被排序过的东东.站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东东都需要排序,可以说排序是无处不在.现在我们举个具体的例子来介绍一下排序算法. 首先出场的是我们的主人公小哼,上面这个可爱的娃就是啦.期末考试完了老师要将同学们的分数按照从高到低排序.小哼的班上只有5个同学,这5个同学分别考了5分.3分.5分.2分和8分,哎,考得真是惨不忍睹(满分是10分).接下来将分