Rumah >pembangunan bahagian belakang >C++ >Bagaimana Mengisih Tatasusunan Berbilang Dimensi mengikut Elemen Pertama Setiap Subarray dalam C ?
Mengisih Tatasusunan Berbilang Dimensi mengikut Subarray Elemen Pertama dalam C
Untuk mengisih tatasusunan berbilang dimensi mengikut elemen pertama setiap subarray, adalah disyorkan untuk menggunakan pendekatan pengisihan tidak langsung dan bukannya memanipulasi tatasusunan secara langsung. Ini melibatkan mencipta tatasusunan indeks yang menghala ke tatasusunan asal dan mengisih indeks berdasarkan kriteria yang dikehendaki.
Pelaksanaan
Berikut ialah contoh pelaksanaan dalam C :
#include <algorithm> int main() { // Sample array of arrays int timeTable[3][2] = {{4, 204}, {10, 39}, {1, 500}}; // Create an array of indices to use for sorting int indices[3] = {0, 1, 2}; // Sort indices based on the first element of each subarray in timeTable std::sort(indices, indices + 3, [](int i1, int i2) { return timeTable[i1][0] < timeTable[i2][0]; }); // Access the sorted subarrays using the sorted index array for (int i = 0; i < 3; ++i) { std::cout << "Subarray at index " << indices[i] << ": [" << timeTable[indices[i]][0] << ", " << timeTable[indices[i]][1] << "]" << std::endl; } }
Contoh
Untuk tatasusunan sampel Jadual waktu, outputnya ialah:
Subarray at index 0: [1, 500] Subarray at index 1: [4, 204] Subarray at index 2: [10, 39]
Faedah Pengisihan Tidak Langsung
Kaedah pengisihan tidak langsung ini menawarkan beberapa kelebihan berbanding pengisihan langsung:
Atas ialah kandungan terperinci Bagaimana Mengisih Tatasusunan Berbilang Dimensi mengikut Elemen Pertama Setiap Subarray dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!