Bagaimana Mengisih Susunan Subarray mengikut Elemen Pertama dalam C?

Barbara Streisand
Lepaskan: 2024-11-23 00:18:12
asal
852 orang telah melayarinya

How to Sort an Array of Subarrays by the First Element in C  ?

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:

  • Elemen tatasusunan asal bersaiz besar.
  • Susunan asal tatasusunan perlu dikekalkan.
  • Susun atur asal adalah janggal atau mustahil untuk dimanipulasi dengan cekap dalam algoritma pengisihan.

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, [&amp;](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";
    }
}
Salin selepas log masuk

Dalam contoh ini:

  • indeks ialah tatasusunan indeks yang dimulakan dengan nilai 0, 1 dan 2.
  • Jadual masa ialah yang asal tatasusunan subarray.
  • std::sort digunakan untuk mengisih indeks berdasarkan elemen pertama yang sepadan subarray dalam Jadual masa.
  • Selepas mengisih indeks, subarray yang diisih boleh diakses menggunakan tatasusunan indeks yang diisih, seperti yang ditunjukkan dalam gelung for.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan