Advertisement
16112

RADIX SORT

Apr 21st, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.22 KB | None | 0 0
  1. package testing;
  2.  
  3. import java.util.Arrays;
  4.  
  5. public class radix {
  6.     static void countSort(int arr[], int n, int exp) {
  7.         int output[] = new int[n];
  8.         int i;
  9.         int count[] = new int[10];
  10.         Arrays.fill(count, 0);
  11.         for (i = 0; i < n; i++)
  12.             count[(arr[i] / exp) % 10]++;
  13.         for (i = 1; i < 10; i++)
  14.             count[i] += count[i - 1];
  15.         for (i = n - 1; i >= 0; i--) {
  16.             output[count[(arr[i] / exp) % 10] - 1] = arr[i];
  17.             count[(arr[i] / exp) % 10]--;
  18.         }
  19.         for (i = 0; i < n; i++)
  20.             arr[i] = output[i];
  21.     }
  22.     static void print(int arr[], int n) {
  23.         for (int i = 0; i < n; i++)
  24.             System.out.print(arr[i] + " ");
  25.     }
  26.     static int getMax(int arr[], int n) {
  27.         int mx = arr[0];
  28.         for (int i = 1; i < n; i++)
  29.             if (arr[i] > mx)
  30.                 mx = arr[i];
  31.         return mx;
  32.     }
  33.     static void radixsort(int arr[], int n) {
  34.         int m = getMax(arr, n);
  35.         for (int exp = 1; m / exp > 0; exp *= 10)
  36.             countSort(arr, n, exp);
  37.     }
  38.     public static void main(String[] args) {
  39.         int arr[] = { 100, 400, 300, 400};
  40.         System.out.println("Before Radix Sort:");
  41.         for (int i : arr) {
  42.             System.out.print(i + " ");
  43.         }
  44.         System.out.println();
  45.         System.out.println("After Radix Sort:");
  46.         int n = arr.length;
  47.         radixsort(arr, n);
  48.         print(arr, n);
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement