En C, contrairement à Java, il n'y a pas de fonction intégrée directe qui peut trier un tableau 2D par valeurs de colonne spécifiques. Cependant, diverses approches peuvent être utilisées pour obtenir ce comportement de tri souhaité.
Une méthode consiste à utiliser la fonction std::qsort, qui est un algorithme de tri générique. En définissant une fonction de comparaison personnalisée, vous pouvez contrôler la logique de tri en fonction des valeurs des colonnes. Voici un exemple d'implémentation :
<code class="cpp">#include <iostream> #include <algorithm> int compareArrayColumns(int **lhs, int **rhs) { return (*lhs)[0] < (*rhs)[0]; } int main() { int arr[][2] = { {20, 11}, {10, 20}, {39, 14}, {29, 15}, {22, 23} }; std::qsort(arr, 5, sizeof(*arr), (int (*)(const void *, const void *))compareArrayColumns); for (int i = 0; i < 5; ++i) { std::cout << arr[i][0] << " " << arr[i][1] << std::endl; } return 0; }</code>
Dans ce code, la fonction compareArrayColumns est utilisée pour comparer les valeurs de la première colonne de chaque ligne du tableau. Le tri est effectué à l'aide de la fonction std::qsort et le tableau 2D trié est imprimé.
Une autre approche consiste à créer des fonctions de tri personnalisées qui implémentent la logique souhaitée. Voici un exemple d'implémentation utilisant un tri à bulles :
<code class="cpp">#include <iostream> void bubbleSortByColumn(int arr[][2], int size) { for (int i = 0; i < size; ++i) { for (int j = 0; j < size - 1; ++j) { if (arr[j][0] > arr[j + 1][0]) { int temp[2]; temp[0] = arr[j][0]; temp[1] = arr[j][1]; arr[j][0] = arr[j + 1][0]; arr[j][1] = arr[j + 1][1]; arr[j + 1][0] = temp[0]; arr[j + 1][1] = temp[1]; } } } } int main() { int arr[][2] = { {20, 11}, {10, 20}, {39, 14}, {29, 15}, {22, 23} }; int size = sizeof(arr) / sizeof(arr[0]); bubbleSortByColumn(arr, size); for (int i = 0; i < size; ++i) { std::cout << arr[i][0] << " " << arr[i][1] << std::endl; } return 0; }</code>
Dans ce code, la fonction bubbleSortByColumn implémente un algorithme de tri à bulles simple qui parcourt le tableau et échange les lignes en fonction des valeurs de la première colonne. Le tableau 2D trié est ensuite imprimé.
Le choix de l'approche dépend des exigences spécifiques et des considérations de performances de votre application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!