Mengisih Tatasusunan mengikut Item Pertama dalam Subarray dalam C
Tatasusunan asal terdiri daripada subarray dengan dua elemen: cth., [[4, 204] , [10, 39], [1, 500]]. Matlamatnya adalah untuk mengisih tatasusunan ini berdasarkan elemen pertama setiap subarray: [[1, 500], [4, 204], [10, 39]].
Teknik Isih
Menariknya, tidak perlu memanipulasi tatasusunan asal itu sendiri. Sebaliknya, pendekatan yang lebih baik ialah mengisih tatasusunan indeks yang menghala ke subarray dalam tatasusunan asal, dan kemudian menggunakan indeks yang diisih untuk mengakses elemen yang diisih.
Faedah Teknik ini
Mengisih indeks dan bukannya tatasusunan asal adalah berfaedah apabila:
Contoh Pelaksanaan
Pertimbangkan contoh berikut kod:
#include <algorithm> #include <iostream> int main() { int index[3] = {0, 1, 2}; int timeTable[3][2] = {{4, 204}, {10, 39}, {1, 500}}; std::sort(index, index + 3, [&](int n1, int n2) { return timeTable[n1][0] < timeTable[n2][0]; }); for (int i = 0; i < 3; ++i) { std::cout << "The index is " << index[i] << ". The data at this index is [" << timeTable[index[i]][0] << " " << timeTable[index[i]][1] << "]\n"; } }
Dalam contoh ini:
Nota: Teknik pengisihan ini digunakan bukan sahaja untuk tatasusunan subarray tetapi juga untuk senario di mana berbilang tatasusunan perlu diisih secara selari berdasarkan data daripada salah satu tatasusunan.
Atas ialah kandungan terperinci Bagaimana Mengisih Susunan Subarray mengikut Elemen Pertama dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!