桶排序 一个有点小巧的排序算法
2013-09-06 15:12
253 查看
import java.util.Arrays; import java.util.Random; /* * 桶排序 把所有的元素的个数依照大小全部放进bucket数组,然后对bucket数组,运用公式bucket[i]=bucket[i]+bucket[i-1] * 最后再根据原数组的中的内容,进行一个映射回去,我对这个算法的看法就是,操作下标,让下标记录一个元素应该在的位置,比如-9元素, * 他在第一位, * */ public class BucketSort { public static void bucketSort(Data[] data, int min, int max) { int[] buckets = new int[max - min]; for (int i = 0; i < data.length; i++)// 对所有元素出现的次数进行计数 { buckets[data[i].getI()-min]++;// 出现一次加一 } for (int i = 1; i < buckets.length; i++) {//从1开始 buckets[i] = buckets[i] + buckets[i - 1]; } Data []temp = new Data[max-min]; System.arraycopy(data,0, temp, 0,data.length); //进行映射回去,注意下标 for(int i=0;i<data.length;i++) { data[--buckets[temp[i].getI()-min]]=temp[i]; } } public static void main(String[] args) { Data[] data = new Data[11]; Random rand = new Random(); data[0] = new Data(39); data[1] = new Data(-9); data[2] = new Data(29); data[3] = new Data(12); data[4] = new Data(57); data[5] = new Data(23); data[6] = new Data(12); data[7] = new Data(94); data[8] = new Data(15); data[9] = new Data(92); data[10] = new Data(92); System.out.println("generate data" + Arrays.asList(data)); bucketSort(data, -10, 100); System.out.println("after sort data" + Arrays.asList(data)); } }
相关文章推荐
- 一个退学创业大学生的自诉(故事有点伤感...)
- 排序算法---桶排序
- 排序算法_桶排序
- 补充一个各种排序算法对比图
- 一个关于各种排序算法的网站
- 一个小巧的列出文件夹下的文件类
- 一个快得出奇又慢得可以的比特排序算法
- 今天下午又是在教室里坐了一个下午,头有点晕
- 自己写的一个有点不同的分页组件,缓存三页的分页组件
- Duktape:一个新的小巧的超精简可嵌入式JavaScript引擎
- 使用Busybox做一个小巧的Linux操作系统
- 排序算法十:桶排序
- 一个满有技巧性的排序算法
- 常见排序算法导读(11)[桶排序]
- 堆排序 一个综合了插入排序和二路归并特点的排序算法(未测试)
- 昨天才会用VS2005制作一个非常非常简单的程序,有点晕啊!还是不会呢!
- Ammyy Admin 一个小巧方便的远程管理工具
- 排序算法--桶排序
- 一个小巧简单的命令可以克隆整个磁盘或者文件系统!
- 一个小巧好用的个人知识管理系统-TiddlyWiki. 推荐