欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

桶排序

程序员文章站 2022-03-03 08:53:53
...
package basic_class_01;

import java.util.Arrays;

/**
 * 桶排序
 * @author lenovo
 *
 */
public class Code_06_BucketSort {


    public static void bucketSort(int[] arr) {
        if(arr == null || arr.length < 2) {
            return;
        }
        int max = Integer.MIN_VALUE;  // -2147483648

        for(int i = 0; i < arr.length; i++) {
            max = Math.max(max, arr[i]);
        }
        int[] bucket = new int[max + 1];
        for(int i = 0; i < arr.length; i++) {
            bucket[arr[i]]++;  // 如果这个序号的桶有数字就  加 1
        }
        System.out.println(Arrays.toString(bucket));
        int i = 0;
        for(int j = 0; j < bucket.length; j++) {
            while(bucket[j] -- > 0) {
                arr[i++] = j;  // 将对应桶中的数字输出   j  其实就是桶的序号
            }
        }

    }



    public static void main(String[] args) {
        // System.out.println(Integer.MIN_VALUE);
        int[] arr = {3,4,2,5,1,7,8,9};
        bucketSort(arr);
        System.out.println(Arrays.toString(arr));

    }

}
相关标签: 桶排序