Escriba un programa para ordenar variables de cualquier tipo de datos sin el uso de std::sort .
Ejemplos:
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
Los ejemplos anteriores muestran que podemos tener cualquier elemento de tipo de datos presente como entrada y la salida estará en una forma ordenada de los datos de entrada.
La idea aquí para resolver este problema es hacer una plantilla .
Método 1 (escribiendo nuestro propio ordenamiento) En el siguiente código, hemos implementado Bubble Sort para ordenar la 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 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; }
Producción:
-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
Método 2 (usando la función de biblioteca)
Podemos usar std::sort en C++ para ordenar arrays de cualquier tipo de datos.
// 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; }
Producción:
-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
Publicación traducida automáticamente
Artículo escrito por Surya Priy y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA