Nos dan dos arrays. Necesitamos ordenar una array de acuerdo con otra.
Ejemplos:
Input : 2 1 5 4 9 3 6 7 10 8 A B C D E F G H I J Output : 1 2 3 4 5 6 7 8 9 10 B A F D C G H J E I Here we are sorting second array (a character array) according to the first array (an integer array).
Hemos discutido diferentes formas en la publicación a continuación.
Ordenar una array según el orden definido por otra array
En esta publicación nos estamos enfocando en usar el contenedor de pares presente en STL de C++.
Para lograr nuestra tarea, vamos a hacer pares de elementos respectivos de ambas arrays. Luego, simplemente use la función de ordenación. Lo importante a tener en cuenta es que el primer elemento de los pares debe ser de la array según la cual se realizará la clasificación.
// Sort an array according to // other using pair in STL. #include <bits/stdc++.h> using namespace std; // Function to sort character array b[] // according to the order defined by a[] void pairsort(int a[], char b[], int n) { pair<int, char> pairt[n]; // Storing the respective array // elements in pairs. for (int i = 0; i < n; i++) { pairt[i].first = a[i]; pairt[i].second = b[i]; } // Sorting the pair array. sort(pairt, pairt + n); // Modifying original arrays for (int i = 0; i < n; i++) { a[i] = pairt[i].first; b[i] = pairt[i].second; } } // Driver function int main() { int a[] = {2, 1, 5, 4, 9, 3, 6, 7, 10, 8}; char b[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'}; int n = sizeof(a) / sizeof(a[0]); // Function calling pairsort(a, b, n); for (int i = 0; i < n; i++) cout << a[i] << " "; cout << endl; for (int i = 0; i < n; i++) cout << b[i] << " "; return 0; }
Producción:
1 2 3 4 5 6 7 8 9 10 B A F D C G H J E I
Este artículo es una contribución de Vineet Joshi . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA