[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/starVader/basic-programs/master/Sorting/CountingSort.java [Back]  [Original]

// Program for implementation of counting sort in java

import java.util.Arrays;

class CountingSort {
  void countSort(int array[], int size) {
    int[] output = new int[size + 1];

    int max = array[0];
    for (int i = 1; i < size; i++) {
      if (array[i] > max)
        max = array[i];
    }
    int[] count = new int[max + 1];

    // Initialize count array with all zeros.
    for (int i = 0; i < max; ++i) {
      count[i] = 0;
    }

    // Store the count of each element
    for (int i = 0; i < size; i++) {
      count[array[i]]++;
    }

    // Store the cummulative count of each array
    for (int i = 1; i = 0; i--) {
      output[count[array[i]] - 1] = array[i];
      count[array[i]]--;
    }


    for (int i = 0; i < size; i++) {
      array[i] = output[i];
    }
  }


  public static void main(String args[]) {
    int[] data = { 4, 2, 2, 8, 3, 3, 1 };
    int size = data.length;
    CountingSort cs = new CountingSort();
    cs.countSort(data, size);
    System.out.println(Arrays.toString(data));
  }
}

Web Proxy Viewer  |  New URL  |  Original Page