排序:入门及桶排序
来源:互联网 发布:java加密文件怎么解密 编辑:程序博客网 时间:2024/06/05 00:50
在生活中,有很多人需要将一些大数列进行排序,这样才可以方便我们。如你是一名登山爱好者,现在要选择一种爬山方案,使队员爬的路径最小。就是将一座座山的海拔排序,先爬小的,再慢慢往上。又如你们班考了试,只有把成绩排好序,才能让大家知道:自己的差距与排名。但是人工来进行又太费功夫,这时,我们的电脑就派上用场。那么今天我们来学桶排序。
我个人认为桶排序是排序中最简单的,它的思路大概是:
拿一个数组,去存放一个数出现了的个数,再最后判断输出
流程大概是这样的:
1.输入
2.循环,用来看需要将b数组第几项加一
3.循环,逐步输出
下面附上一段核心代码
for(int i=1;i<=n;i++){ b[a[i]]++;//b数组是用来存放i有多少个 }for(int i=1;i<=n;i++){ while(b[i]!=0)//判断是否为0个 { cout<<i<<' '; b[i]--;//这里很重要 }}
正如一个个小桶子,把次数装进去,不得不赞叹它的奇妙。
源码:
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int a[10001];int main(){ int n; cin>>n; for(int i=1;i<=n;i++) { int s; cin>>s; a[s]++; } for(int i=1;i<=n;i++) { while(a[i]!=0) { cout<<i<<' '; a[i]--; } }}
但是,世无完美,桶排序特别浪费空间,如,要排一系列的数:1,100000001,11.也要定义100000001个空间,这早爆了.所以还是少用为好。那这怎么解决呢?请接着关注我的博客。
0 0
- 排序:入门及桶排序
- 【入门】绝对值排序 【排序】
- 排序入门--归并排序
- 排序入门
- 排序入门
- 排序及排序代码
- 排序算法-桶排序(入门级别)
- 分配排序---箱排序,基数排序与桶排序及排序选择方法
- 各种线性排序记录(计数排序,基数排序,桶排序) 及 希尔排序
- 冒泡排序、插入排序及快速排序
- 排序入门之快速排序简单入门
- 排序入门之快速排序简单入门
- 合并排序及堆排序
- 插入排序及归并排序
- 冒泡排序及快速排序
- 各种排序及内省排序
- solr入门之自定义排序之构建自己的权重计算方法及相应的排序字段
- 算法入门--插入排序
- 程序员编程能力层次模型
- 445端口入侵详解
- jeclipse中编译问题
- Watson Explorer 入门(11):配置词典和规则
- android 雷达图 蜘蛛图
- 排序:入门及桶排序
- TCP-IP详解之TCP的超时与重传4
- [leetcode: Python]278.First Bad Version
- URLError处理异常
- 条款17以独立语句将new置入智能指针
- Kmeans 图像分割 by python
- java static 函数 变量 代码块
- exec函数族小结
- 静态方法注入bean