Program for sorting variables of any data type

27 Jan, 2018
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 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 possibletemplate <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 possibletemplate <class T>void printArray(T a[], int n){    for (size_t i = 0; i < n; ++i)         cout << a[i] << "   ";        cout << endl;}  // Driver codeint 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;}
-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 <bits/stdc++.h>using namespace std;  // Template formed so that sorting of any // type variable is possibletemplate <class T>void printArray(T a[], int n){    for (size_t i = 0; i < n; ++i)         cout << a[i] << "   ";        cout << endl;}  // Driver codeint 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;}
-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

cpp-template
Sorting
Sorting
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Chocolate Distribution Problem
Longest Common Prefix using Sorting
Sort a nearly sorted (or K sorted) array
Segregate 0s and 1s in an array
Sorting in Java
Find whether an array is subset of another array
Quick Sort vs Merge Sort
Stability in sorting algorithms
Find all triplets with zero sum