zoukankan      html  css  js  c++  java
  • 排序算法一:桶排序

      在我们的生活的这个世界到处都是被排序过的东西。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……可以说排序无处不在。今天简单讲讲最快最简单的排序——桶排序。

      尝试一下输入n个0~1000之间的整数,将它们从大到小排序。

    代码实现如下:

    #include <stdio.h>
    int main() {
    	//桶排序
    	//先确定变量
    	//赋初始值
    	//循环输入数值
    	//循环输出数值
    	printf("桶排序
    ");
    	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("排序结果:
    ");
    	for (i = 1000; i >= 0; i--)                //依次判断编号1000~0的桶
    		for (j = 1; j <= book[i]; j++)     //出现了几次就将桶的编号打印几次
    			printf("%d	",i);
    	getchar();        //用来暂停程序,以便查看程序输出的内容
    	getchar();
    	return 0;
    }
    

    输入以下数据进行验证:

    10

    8 100 50 22 15 6 1 1000 999 0

    运行结果是:

  • 相关阅读:
    五分钟搭建起一个包含CRUD功能的JqGrid表格
    TDD学习笔记【六】一Unit Test
    CQRS
    开源一个vue2的tree组件
    权限管理[Linux]
    文件管理[Linux]
    查看文本[Linux]
    常用命令[Linux]
    文件管理[Linux]
    状态机工作流
  • 原文地址:https://www.cnblogs.com/yankyblogs/p/7058616.html
Copyright © 2011-2022 走看看