Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package testing;
- import java.util.Arrays;
- public class radix {
- static void countSort(int arr[], int n, int exp) {
- int output[] = new int[n];
- int i;
- int count[] = new int[10];
- Arrays.fill(count, 0);
- for (i = 0; i < n; i++)
- count[(arr[i] / exp) % 10]++;
- for (i = 1; i < 10; i++)
- count[i] += count[i - 1];
- for (i = n - 1; i >= 0; i--) {
- output[count[(arr[i] / exp) % 10] - 1] = arr[i];
- count[(arr[i] / exp) % 10]--;
- }
- for (i = 0; i < n; i++)
- arr[i] = output[i];
- }
- static void print(int arr[], int n) {
- for (int i = 0; i < n; i++)
- System.out.print(arr[i] + " ");
- }
- static int getMax(int arr[], int n) {
- int mx = arr[0];
- for (int i = 1; i < n; i++)
- if (arr[i] > mx)
- mx = arr[i];
- return mx;
- }
- static void radixsort(int arr[], int n) {
- int m = getMax(arr, n);
- for (int exp = 1; m / exp > 0; exp *= 10)
- countSort(arr, n, exp);
- }
- public static void main(String[] args) {
- int arr[] = { 100, 400, 300, 400};
- System.out.println("Before Radix Sort:");
- for (int i : arr) {
- System.out.print(i + " ");
- }
- System.out.println();
- System.out.println("After Radix Sort:");
- int n = arr.length;
- radixsort(arr, n);
- print(arr, n);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement