Question

In: Computer Science

Hello i need someone to implement for me RADIX SORT IN JAVA for Characters NOT numbers...

Hello i need someone to implement for me RADIX SORT IN JAVA for Characters NOT numbers

and i need the code super fast please

Solutions

Expert Solution

I am providing the code and sample output below, the code takes input as number of characters and the characters itself, you can implement static array of characters as well, you just have to uncomment some lines specified in the code to use that.

Code:

// Radix sort Java implementation 
import java.io.*; 
import java.util.*; 

public class Main { 

        // A utility function to get maximum value in arr[] 
        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; 
        } 

        // A function to do counting sort of arr[] according to 
        // the digit represented by exp. 
        static void countSort(int arr[], int n, int exp) 
        { 
                int output[] = new int[n]; // output array 
                int i; 
                int count[] = new int[10]; 
                Arrays.fill(count,0); 

                // Store count of occurrences in count[] 
                for (i = 0; i < n; i++) 
                        count[ (arr[i]/exp)%10 ]++; 

                // Change count[i] so that count[i] now 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 ]--; 
                } 

                // Copy the output array to arr[], so that arr[] now 
                // contains sorted numbers according to current digit 
                for (i = 0; i < n; i++) 
                        arr[i] = output[i]; 
        } 

        // The main function to that sorts arr[] of size n using 
        // Radix Sort 
        static void radixsort(int arr[], int n) 
        { 
                // Find the maximum number to know number of digits 
                int m = getMax(arr, n); 

                // Do counting sort for every digit. Note that instead 
                // of passing digit number, exp is passed. exp is 10^i 
                // where i is current digit number 
                for (int exp = 1; m/exp > 0; exp *= 10) 
                        countSort(arr, n, exp); 
        } 

        // A utility function to print an array 
        static void print(int arr[], int n) 
        { 
                for (int i=0; i<n; i++) 
                        System.out.print((char)arr[i]+" "); 
        } 


        /*Driver function to check for above function*/
        public static void main (String[] args) 
        { 
            Scanner sc = new Scanner(System.in);  // Create a Scanner object
            //
            // Static character array
            //
//              char arr[] = {'a', 'c', 'f', 'b', 'e'}; 
//              int n = arr.length; 
                
                // For taking static array of characters uncomment the above lines
        // And comment the below lines
        System.out.println("Enter number of characters to be sorted: ");
        int n = sc.nextInt();
                char arr[] = new char[n];
                System.out.println("Enter characters to be sorted: ");
                for(int i=0; i<n; i++){
                    arr[i] = sc.next().charAt(0); 
                }
                
                
                // Creating and saving the ascii values of characters in temp array
                int temp[] = new int[n];
                for (int i=0; i<n; i++){
                    temp[i] = (int)arr[i];
                }
                radixsort(temp, n); 
                System.out.println("Sorted characters are: ");
                print(temp, n); 
        } 
} 

Output:

Hope this answers your questions, please leave a upvote if you find this helpful.


Related Solutions

Hello i need someone to implement in JAVA a radix sort algorithm forsorting strings in ascending...
Hello i need someone to implement in JAVA a radix sort algorithm forsorting strings in ascending order. The input to your algorithm should be a (multi)set S = [S1, S2, . . . , Sn] of strings each of which is of length m over the English alphabet [A…Z, a…z]. The output should be the set sorted in ascending lexicographical order. Number of strings is >= 100 and number of characters >= 50 i need the answer fast please
You want to implement Radix Sort to sort a large set of random numbers using an...
You want to implement Radix Sort to sort a large set of random numbers using an auxiliary sorting algorithm for the digits and you want your algorithm to be fast. Which auxiliary sorting algorithms would you use? 1. Heap Sort 2. Merge Sort 3. Insertion Sort 4. Selection Sort 5. Basic Quick Sort
implement merge sort,quick sort, and radix sort algorithms in java and test how long it will...
implement merge sort,quick sort, and radix sort algorithms in java and test how long it will take to sort with random data sets of users input numbers.
Radix sort Come up with an unsorted array of numbers (integer array). Sort the numbers in...
Radix sort Come up with an unsorted array of numbers (integer array). Sort the numbers in ascending order and descending order and display them using radix sort. First sort in ascending, then reset the array to its original order and finally sort the array again in descending order. (Write a C# program)
Radix sort Come up with an unsorted array of numbers (integer array). Sort the numbers in...
Radix sort Come up with an unsorted array of numbers (integer array). Sort the numbers in ascending order and descending order and display them using radix sort. First sort in ascending, then reset the array to its original order and finally sort the array again in descending order. C++ program thanks
i) Pen down the algorithm for Radix sort. ii) What is the complexity of Radix sort?...
i) Pen down the algorithm for Radix sort. ii) What is the complexity of Radix sort? iii) Give any 2 real time examples of Radix sort.
i) Pen down the algorithm for Radix sort. ii) What is the complexity of Radix sort?...
i) Pen down the algorithm for Radix sort. ii) What is the complexity of Radix sort? iii) Give any 2 real time examples of Radix sort.
Data structure program Implement (your own) the Radix Sort using single linked list java language
Data structure program Implement (your own) the Radix Sort using single linked list java language
Radix sortCome up with an unsorted array of numbers (integer array). Sort the numbers in ascending...
Radix sortCome up with an unsorted array of numbers (integer array). Sort the numbers in ascending order and descending order and display them using radix sort. First sort in ascending, then reset the array to its original order and finally sort the array again in descending order. I need this in java language.
Radix sortCome up with an unsorted array of numbers (integer array). Sort the numbers in ascending...
Radix sortCome up with an unsorted array of numbers (integer array). Sort the numbers in ascending order and descending order and display them using radix sort. First sort in ascending, then reset the array to its original order and finally sort the array again in descending order. I need this in java language. Radix Sort assignment (CISP430 ignore this part) This is only for those who are using Java How many classes do I need? A: Node, Queue, Radix, Driver...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT