Write a program for sorting variables of any datatype without the use of std::sort .
Examples:
Input : 2000, 456, -10, 0
Output : -10 0 456 2000
Input : "We do nothing"
"Hi I have something"
"Hello Join something!"
"(Why to do work)"
Output :(Why to do work)
Hello Join something!
Hi I have something
We do nothing
The examples above show, we can have any data type elements present as an input and output will be in a sorted form of the input data. The idea here to solve this problem is to make a template.
Method 1 (Writing our own sort) In below code, we have implemented Bubble Sort to sort the array.
CPP
// CPP program to sort array of any data types. #include <bits/stdc++.h> using namespace std; // Template formed so that sorting of any // type variable is possible template < class T> void sortArray(T a[], int n) { // boolean variable to check that // whether it is sorted or not bool b = true ; while (b) { b = false ; for ( size_t i=0; i<n-1; i++) { // swapping the variable // for sorting order if (a[i] > a[i + 1]) { T temp = a[i]; a[i] = a[i + 1]; a[i + 1] = temp; b = true ; } } } } // Template formed so that sorting of any // type variable is possible template < class T> void printArray(T a[], int n) { for ( size_t i = 0; i < n; ++i) cout << a[i] << " " ; cout << endl; } // Driver code int main() { int n = 4; int intArr[n] = { 2000, 456, -10, 0 }; sortArray(intArr, n); printArray(intArr, n); string strArr[n] = { "We do nothing" , "Hi I have something" , "Hello Join something!" , "(Why to do work)" }; sortArray(strArr, n); printArray(strArr, n); float floatArr[n] = { 23.4, 11.4, -9.7, 11.17 }; sortArray(floatArr, n); printArray(floatArr, n); return 0; } |
Java
import java.util.Arrays; class Main { // Generic method for sorting an array of any type public static <T extends Comparable<T>> void sortArray(T[] a) { boolean sorted; do { sorted = true ; for ( int i = 0 ; i < a.length - 1 ; i++) { // Compare adjacent elements and swap them if they are out of order if (a[i].compareTo(a[i + 1 ]) > 0 ) { T temp = a[i]; a[i] = a[i + 1 ]; a[i + 1 ] = temp; sorted = false ; } } } while (!sorted); // Repeat the process until the array is sorted } // Generic method for printing an array of any type public static <T> void printArray(T[] a) { for (T value : a) { // Print each element followed by a space System.out.print(value + " " ); } System.out.println(); // Move to the next line after printing the array } public static void main(String[] args) { Integer[] intArr = { 2000 , 456 , - 10 , 0 }; sortArray(intArr); // Sort the array of integers printArray(intArr); // Print the sorted integer array String[] strArr = { "We do nothing" , "Hi I have something" , "Hello Join something!" , "(Why to do work)" }; sortArray(strArr); // Sort the array of strings printArray(strArr); // Print the sorted string array Float[] floatArr = { 23 .4f, 11 .4f, - 9 .7f, 11 .17f }; sortArray(floatArr); // Sort the array of floating-point numbers printArray(floatArr); // Print the sorted float array } } |
Python
def sort_array(a): sorted = False while not sorted : sorted = True for i in range ( len (a) - 1 ): # Compare adjacent elements and swap them if they are out of order if a[i] > a[i + 1 ]: a[i], a[i + 1 ] = a[i + 1 ], a[i] sorted = False # Generic method for printing an array of any type def print_array(a): for value in a: # Print each element followed by a space print (value), print () # Move to the next line after printing the array # Main function if __name__ = = "__main__" : int_arr = [ 2000 , 456 , - 10 , 0 ] sort_array(int_arr) # Sort the array of integers print_array(int_arr) # Print the sorted integer array str_arr = [ "We do nothing" , "Hi I have something" , "Hello Join something!" , "(Why to do work)" ] sort_array(str_arr) # Sort the array of strings print_array(str_arr) # Print the sorted string array float_arr = [ 23.4 , 11.4 , - 9.7 , 11.17 ] sort_array(float_arr) # Sort the array of floating-point numbers print_array(float_arr) # Print the sorted float array |
C#
// C# program to sort array of any data types. using System; class GFG { // Template formed so that sorting of any // type variable is possible static void SortArray<T>(T[] a) where T : IComparable<T> { // boolean variable to check that // whether it is sorted or not bool b = true ; while (b) { b = false ; for ( int i = 0; i < a.Length - 1; i++) { // swapping the variable // for sorting order if (a[i].CompareTo(a[i + 1]) > 0) { T temp = a[i]; a[i] = a[i + 1]; a[i + 1] = temp; b = true ; } } } } // Template formed so that sorting of any // type variable is possible static void PrintArray<T>(T[] a) { foreach (T element in a) { Console.Write(element + " " ); } Console.WriteLine(); } // Driver code static void Main() { int [] intArr = { 2000, 456, -10, 0 }; SortArray(intArr); PrintArray(intArr); string [] strArr = { "We do nothing" , "Hi I have something" , "Hello Join something!" , "(Why to do work)" }; SortArray(strArr); PrintArray(strArr); float [] floatArr = { 23.4f, 11.4f, -9.7f, 11.17f }; SortArray(floatArr); PrintArray(floatArr); } } // This code is contributed by Vaibhav Nandan |
Output
-10 0 456 2000 (Why to do work) Hello Join something! Hi I have something We do nothing -9.7 11.17 11.4 23.4
Method 2 (Using Library Function) We can use std::sort in C++ to sort array of any data type.
CPP
// CPP program to sort array of any data types. #include <bits/stdc++.h> using namespace std; // Template formed so that sorting of any // type variable is possible template < class T> void printArray(T a[], int n) { for ( size_t i = 0; i < n; ++i) cout << a[i] << " " ; cout << endl; } // Driver code int main() { int n = 4; int intArr[n] = { 2000, 456, -10, 0 }; sort(intArr, intArr + n); printArray(intArr, n); string strArr[n] = { "We do nothing" , "Hi I have something" , "Hello Join something!" , "(Why to do work)" }; sort(strArr, strArr + n); printArray(strArr, n); float floatArr[n] = { 23.4, 11.4, -9.7, 11.17 }; sort(floatArr, floatArr+n); printArray(floatArr, n); return 0; } |
Java
// Java program to sort array of any data types. import java.util.Arrays; public class Main { public static void printArray( int [] a) { for ( int i = 0 ; i < a.length; i++) { System.out.print(a[i] + " " ); } System.out.println(); } // Template formed so that sorting of any // type variable is possible public static void printArray(String[] a) { for ( int i = 0 ; i < a.length; i++) { System.out.print(a[i] + " " ); } System.out.println(); } public static void printArray( float [] a) { for ( int i = 0 ; i < a.length; i++) { System.out.print(a[i] + " " ); } System.out.println(); } // Driver code public static void main(String[] args) { int n = 4 ; int [] intArr = { 2000 , 456 , - 10 , 0 }; Arrays.sort(intArr); printArray(intArr); String[] strArr = { "We do nothing" , "Hi I have something" , "Hello Join something!" , "(Why to do work)" }; Arrays.sort(strArr); printArray(strArr); float [] floatArr = { 23 .4f, 11 .4f, - 9 .7f, 11 .17f}; Arrays.sort(floatArr); printArray(floatArr); } } // This code is contributed by shiv1o43g |
Python3
def printArray(a): for i in range ( len (a)): print (a[i], end = " " ) print () def main(): n = 4 intArr = [ 2000 , 456 , - 10 , 0 ] intArr.sort() printArray(intArr) strArr = [ "We do nothing" , "Hi I have something" , "Hello Join something!" , "(Why to do work)" ] strArr.sort() printArray(strArr) floatArr = [ 23.4 , 11.4 , - 9.7 , 11.17 ] floatArr.sort() printArray(floatArr) if __name__ = = "__main__" : main() # This code is contributed by shivhack999 |
C#
// C# program to sort array of any data types. using System; public class MainClass { // Template formed so that sorting of any // type variable is possible public static void PrintArray<T>(T[] arr) { foreach (T item in arr) { Console.Write(item + " " ); } Console.WriteLine(); } // Driver code public static void Main() { int [] intArr = { 2000, 456, -10, 0 }; Array.Sort(intArr); PrintArray(intArr); string [] strArr = { "We do nothing" , "Hi I have something" , "Hello Join something!" , "(Why to do work)" }; Array.Sort(strArr); PrintArray(strArr); float [] floatArr = { 23.4f, 11.4f, -9.7f, 11.17f }; Array.Sort(floatArr); PrintArray(floatArr); } } // This code is contributed by Utkarsh Kumar |
Javascript
<script> // Javascript program to sort array of any data types. function printArray(arr) { for (let i = 0; i < arr.length; i++) { document.write(arr[i] + " " ); } document.write( "<br>" ); } // Driver code const intArr = [2000, 456, -10, 0]; intArr.sort((a, b) => a - b); printArray(intArr); const strArr = [ "We do nothing" , "Hi I have something" , "Hello Join something!" , "(Why to do work)" ]; strArr.sort(); printArray(strArr); const floatArr = [23.4, 11.4, -9.7, 11.17]; floatArr.sort(); printArray(floatArr); // This code is contributed by Pushpesh Raj. </script> |
Output
-10 0 456 2000 (Why to do work) Hello Join something! Hi I have something We do nothing -9.7 11.17 11.4 23.4
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!