本文主要是介绍3.23 桶排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
每天都要写点笔记,不然学过的东西都要忘了。
package com.sort;
/**** 桶排序* @author Administrator 2017.3.23*数组下标范围就是数据范围,元素值与数组的下标相对应*时间复杂度为O(n+m),n为待排个数,m为桶数,空间复杂度要看数据的规模m,*一般适用于数据分布均匀,数据范围不大的时候,比如哈希映射快速获取,统计个数等*适当的给数据分组,在桶的内部在采用其他排序优化*/
public class BucketSort {private int[] bucket;private int[] arr;public BucketSort(int range,int[] arr) {bucket=new int[range];this.arr = arr;}public void sort(){ for(int i=0;i<arr.length;i++){//相同的元素放入同一个桶中,该桶的值为相同数据的个数bucket[arr[i]]++; } }public void display(){for(int i=0;i<bucket.length;i++){for(int j=0;j<bucket[i];j++){System.out.print(i+" ");}}}public static void main(String[] args) {int[] array={1,7,5,5,9,3,1,12,10};BucketSort bs=new BucketSort(14, array);bs.sort();bs.display();}
}
这篇关于3.23 桶排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!