Program for sorting variables of any data type

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

Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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 program to sort array of any data types. #include using namespace std;    // Template formed so that sorting of any  // type variable is possible template 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 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 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; }

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 program to sort array of any data types. #include using namespace std;    // Template formed so that sorting of any  // type variable is possible template 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; }

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

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.