C语言实现排序算法---桶(箱)排序
来源:互联网 发布:云平台网络架构 编辑:程序博客网 时间:2024/06/06 02:20
上一篇写了C语言排序算法中的希尔排序,下面这一篇和大家分享一下桶排序(BucketSort)。
桶排序(BucketSort)也叫箱排序。顾名思义,我们在排序的时候,需要用到“桶”或者“箱子”这样的东西来存放元素。当然,正如你所料,在编程工作中,我们一般用数组来存放这些东西。
那么现在问题来了,我们应该如何使用这些箱子呢。首先,我们需要按照特性给这些箱子分一下类:现在假如我要给100个1000以内的数据排序。那么我们需要10个桶,并编号0~9,因为我们观察会发现,这些数据无非就是0~9组成的。而刚好数组能很好的解决这一问题,比如:int arr[10][LENGTH],下标0~9刚好分别代表了这10个桶。
可是说好10个“桶”,为什么定义的是一个二维数组呢?0~9只能解决编号的问题,而作为“桶”是需要装东西的,所以我们需要的是一个二维数组。LENGTH代表的是待排序数组的个数,因为我们需要考虑极端情况,如果这些元素都是一个特性的,那么一个“桶”就必须要保证能全部容纳的下才行。
那么,我们排序的这个特性到底是什么呢?其实桶排序就是先给个位数相同的装进一个“桶”,然后还原,再给十位数相同的装进一个“桶”...一次类推。
下面附上一张图:
另外一点值得注意的就是:每次给数据分类时都必须要把“桶”清空一下才行,也就是图上的42~47行。
桶排序是典型的以空间换时间的一种排序算法。
下面是完成的源码:
希望大家能有所收获,也欢迎指正!
阅读全文
1 0
- C语言实现排序算法---桶(箱)排序
- C 语言 简单桶排序 算法&实现
- 排序算法(C语言实现)
- C语言排序算法实现
- 排序算法--C语言实现
- C语言实现排序算法---希尔排序
- 排序算法c语言描述---桶排序
- [C语言算法]排序之桶排序
- 基本排序算法的C语言实现
- 插入排序算法的C语言实现
- 选择排序算法的C语言实现
- 插入排序算法C语言实现
- 经典排序算法(C语言实现)
- 用C语言实现常用排序算法
- 快速排序C语言算法实现
- c语言实现快速排序算法
- 冒泡排序算法的c语言实现
- 快速排序算法的c语言实现
- Linux top
- HashMap和HashTable的区别,HashTable和ConcurrentHashMap的区别
- matlab工具箱下载
- Windows下VS2015编译64位Boost1.64
- 对抗样本机器学习_Note1
- C语言实现排序算法---桶(箱)排序
- 人工智能从入门到精通(17)
- XX区别
- jdbc事务封装之DBCPUtil和ThreadLocal
- ACdream 1020
- Kaggle_Titanic生存预测 -- 详细流程吐血梳理
- 单例模式常用三种写法
- java作业
- java、数组