Question: PLEASE SHOW WHERE TO IMPLEMENT COUNTING MOVEMENTS IN THIS RADIX SORT ALGORITHM GIVEN. Please show output of the number of movements for an in order,
PLEASE SHOW WHERE TO IMPLEMENT COUNTING MOVEMENTS IN THIS RADIX SORT ALGORITHM GIVEN.
Please show output of the number of movements for an in order, reverse order, and random order input arrays.
JAVA
/************ RADIX SORT **************************/
import java.io.*;
import java.util.*;
class Radix {
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 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 ]++;
// Change count[i] so that it contains actual position of this digit in output[]
for (i = 1; i < 10; i++)
count[i] += count[i - 1]; // Build the output array
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 radixsort(int arr[], int n)
{ // Find the maximum number to know number of digits
int m = getMax(arr, n);
for (int exp = 1; m/exp > 0; exp *= 10)
countSort(arr, n, exp);
}
static void print(int arr[], int n) {
for (int i=0; i System.out.print(arr[i]+" "); } public static void main (String[] args) { int arr[] = {170, 45, 75, 90, 802, 24, 2, 66}; int n = arr.length; radixsort(arr, n); print(arr, n); } } i will upvote if complete
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
