Cで多次元配列を各部分配列の最初の要素でソートするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-25 21:58:15
オリジナル
916 人が閲覧しました

How to Sort a Multi-Dimensional Array by the First Element of Each Subarray in C  ?

C のサブ配列の最初の要素による多次元配列のソート

各サブ配列の最初の要素で多次元配列をソートするには、次のようにします。配列を直接操作するのではなく、間接的な並べ替えアプローチを採用することをお勧めします。これには、元の配列を指すインデックスの配列の作成と、必要な条件に基づいてインデックスの並べ替えが含まれます。

実装

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;
    }
}
ログイン後にコピー

サンプル配列 timeTable の場合、出力は次のようになります:

Subarray at index 0: [1, 500]
Subarray at index 1: [4, 204]
Subarray at index 2: [10, 39]
ログイン後にコピー

間接ソートの利点

この間接的な並べ替え方法には、直接的な並べ替え方法に比べていくつかの利点があります。並べ替え:

  • メモリ効率: 元の配列の一時コピー用に追加のストレージ領域は必要ありません。
  • パフォーマンス:通常、インデックスの並べ替えは、元のインデックスを直接操作するよりも高速です。 array.
  • 柔軟性: std::sort 呼び出しの並べ替え述語を変更するだけなので、並べ替え基準を変更する方が簡単です。
  • 保守性: 多次元での複雑な操作が回避されるため、コードがより読みやすく保守しやすくなります。配列。

以上がCで多次元配列を各部分配列の最初の要素でソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート