桶式排序
来源:互联网 发布:常见的hash算法有哪些 编辑:程序博客网 时间:2024/06/05 11:46
简单桶式排序
有限个数字m,每个数字的大小都在1与n之间,则我们可以假设有n个桶,遍历m个数字,将其存入对应的桶中(如数字的值为3,就存入3号桶,桶的值对应存入数字的个数
我们按照桶的序号将数字倒出来,如下:
/** * 桶式排序 * @author yangpeng * */public class BucketSortDemo { public static void main(String[] args) { int[] a = { 9, 4, 7, 2, 5, 8, 3, 2, 10, 1 }; System.out.println("初始序列:" + Arrays.toString(a)); bucketSort(a,10); } /** * * @param a 需要排序的数组 * @param max 数组中的最大值 */ public static void bucketSort(int[] a,int max){ int[] count=new int[max+1];//创建一个长度为max的数组 // 遍历数组a for (int i = 0; i < a.length; i++) { // 如果数组a的值 作为的count的 下标,每次出现一次 count数组的值+1 count[a[i]]++; } // 将桶的中数字倒出 System.out.print("排序好的序列:"); for (int i = 0; i < count.length; i++) { while(count[i]>0){ System.out.print(i +" "); count[i]--; } } }}
弊端
如果我们的数字波动范围非常大,比如1到10000,那么我们需要一个10000元素数组的空间开销,而且在倒出数字的时候需要遍历10000个桶,这样效率是非常低的
0 0
- 插入排序,冒泡排序,桶式排序
- 数据结构-排序算法详解(插入排序,希尔排序,堆排序,归并排序,快速排序,桶式排序)
- 排序算法之桶式排序
- 常用排序算法之桶式排序
- 桶式排序
- 桶式排序
- 桶式排序
- 桶式排序
- 桶式排序
- 桶式排序
- 桶式排序算法
- 桶式排序
- 桶式排序
- 桶式排序
- 桶式排序(c++)
- 桶式排序
- 桶式排序
- 桶式排序
- HTML5复习 (11)
- Android动画学习篇(一)【TweenAnimation】
- IntelliJ IDEA
- 山东第二届acm省赛总结:
- I
- 桶式排序
- chrome浏览器解决跨域问题
- ubuntu anaconda install opencv
- 51nod1347
- 数据库锁机制
- 使用CXF开发RESTFul服务
- CodeForces 772A Voltage Keepsake
- Android录制WAV文件- 带去回声
- java从入门到弃坑第十天