package com.longyin.src;
import java.util.ArrayList;
import java.util.Iterator;
import com.longyin.utils.Datas;
public class BucketSort {
/**
* 桶排序算法,对arr进行桶排序,排序结果仍放在arr中
* @param arr
*/
public static void main(String[] args){
bucketSort(Datas.datad);
for (int i = 0; i < Datas.datad.length; i++) {
System.out.println(Datas.datad[i]+",");
}
}
public static void bucketSort(double arr[]){
int n = arr.length;
ArrayList<Double> arrList[] = new ArrayList[n];
//把arr中的数均匀的的分布到[0,1)上,每个桶是一个list,存放落在此桶上的元素
for(int i =0;i<n;i++){
int temp = (int) Math.floor(n*arr[i]);
if(null==arrList[temp])
arrList[temp] = new ArrayList<>();
arrList[temp].add(arr[i]);
}
//对每个桶中的数进行插入排序
for(int i = 0;i<n;i++){
if(null!=arrList[i])
insert(arrList[i]);
}
//把各个桶的排序结果合并
int count = 0;
for(int i = 0;i<n;i++){
if(null!=arrList[i]){
Iterator<Double> iter = arrList[i].iterator();
while(iter.hasNext()){
Double d = (Double)iter.next();
arr[count] = d;
count++;
}
}
}
}
/**
* 用插入排序对每个桶进行排序
* @param list
*/
public static void insert(ArrayList<Double> list){
if(list.size()>1){
for(int i =1;i<list.size();i++){
if((Double)list.get(i)<(Double)list.get(i-1)){
double temp = (Double) list.get(i);
int j = i-1;
for(;j>=0&&((Double)list.get(j)>(Double)list.get(j+1));j--)
list.set(j+1, list.get(j));
list.set(j+1, temp);
}
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Java-十种内部排序实现(选择,冒泡,插入,希尔,堆,归并,快速,基数,计数,桶)
共32个文件
class:11个
java:11个
png:7个
5星 · 超过95%的资源 需积分: 20 44 下载量 44 浏览量
2015-10-06
21:37:33
上传
评论
收藏 366KB RAR 举报
温馨提示
1. 选择排序 2. 冒泡排序 3. 插入排序 4. 希尔排序 5. 堆排序 6. 归并排序 7. 快速排序 8. 基数排序 9. 计数排序 10. 桶排序 十种排序代码 我的博文地址:http://blog.csdn.net/u010156024/article/details/48932219
资源推荐
资源详情
资源评论
收起资源包目录
各种内部排序代码实现.rar (32个子文件)
各种内部排序代码实现
bin
com
longyin
src
HeapSort.class 1KB
BucketSort.class 3KB
BubbleSort.class 806B
CuntingSort.class 996B
SelectSort.class 954B
ShellSort.class 805B
InsertSort.class 760B
RadixSort.class 1KB
MergeSort.class 1KB
QuickSort.class 1KB
utils
Datas.class 2KB
桶排序说明图.png 210KB
归并排序说明图.png 40KB
堆排序说明图.png 23KB
希尔排序说明图.png 15KB
插入排序说明图.png 9KB
.settings
org.eclipse.jdt.core.prefs 598B
src
com
longyin
src
RadixSort.java 1KB
ShellSort.java 716B
MergeSort.java 2KB
QuickSort.java 2KB
SelectSort.java 727B
BubbleSort.java 541B
CuntingSort.java 1KB
HeapSort.java 2KB
InsertSort.java 571B
BucketSort.java 2KB
utils
Datas.java 883B
.project 406B
冒泡排序说明图.png 10KB
.classpath 301B
快速排序说明图.png 42KB
共 32 条
- 1
资源评论
- 直立行走的蛋2015-10-18非常全面,谢谢分享
龙吟在天
- 粉丝: 566
- 资源: 74
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功