Bucket Sort Program in Java

 Bucket Sort is a sorting algorithm that divides the unsorted array elements into several groups called buckets. Each bucket is then sorted by using any of the suitable sorting algorithms or recursively applying the same bucket algorithm.

import java.util.ArrayList;

import java.util.Collections;

public class BucketSort {

  public void bucketSort(float[] arr, int n) {

    if (n <= 0)

      return;

    @SuppressWarnings("unchecked")

    ArrayList<Float>[] bucket = new ArrayList[n];

    // Create empty buckets

    for (int i = 0; i < n; i++)

      bucket[i] = new ArrayList<Float>();

    // Add elements into the buckets

    for (int i = 0; i < n; i++) {

      int bucketIndex = (int) arr[i] * n;

      bucket[bucketIndex].add(arr[i]);

    }

    // Sort the elements of each bucket

    for (int i = 0; i < n; i++) {

      Collections.sort((bucket[i]));

    }

    // Get the sorted array

    int index = 0;

    for (int i = 0; i < n; i++) {

      for (int j = 0, size = bucket[i].size(); j < size; j++) {

        arr[index++] = bucket[i].get(j);

      }

    }

  }

  // Driver code

  public static void main(String[] args) {

    BucketSort b = new BucketSort();

    float[] arr = { (float) 0.42, (float) 0.32, (float) 0.33, (float) 0.52, (float) 0.37, (float) 0.47,

        (float) 0.51 };

    b.bucketSort(arr, 7);

    for (float i : arr)

      System.out.print(i + "  ");

  }

}

Comments

Popular posts from this blog

How to create Animated 3d chart with R.

Linux/Unix Commands frequently used

R Programming Introduction