首頁 >後端開發 >C++ >如何在 C 中依第一個元素對數組數組進行排序?

如何在 C 中依第一個元素對數組數組進行排序?

Barbara Streisand
Barbara Streisand原創
2024-11-21 19:05:131060瀏覽

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

如何依照第一個元素對陣列陣列進行排序?

你有一個陣列數組,例如 [[4, 204 ]、[10, 39]、[1, 500]]。您希望按子數組的第一個元素對它們進行排序以獲得 [[1, 500], [4, 204], [10, 39]]。以下是在C 中執行此操作的方法:

方法:對索引進行排序而不是數組

您可以對指向的索引數組進行排序,而不是對數組本身進行排序原始數組。對於每個子數組包含大量資料或需要保留原始順序的大型數組,此方法更有效。

第1 步:建立索引數組

初始化一個名為index的索引數組,索引範圍為0到n-1,其中n為索引的個數子數組。

步驟 2:定義排序謂詞

建立一個使用索引數組比較子數組的第一個元素的排序謂詞。如果索引 n1 處的子數組的第一個元素小於索引 n2 處的子數組的第一個元素,則謂詞應傳回 true。

bool compareFirstElement(int n1, int n2) {
  return timeTable[n1][0] <p><strong>步驟 3:將索引數組排序</strong></p><p>使用 std::sort 函數和定義的謂詞對索引數組進行排序。這將根據子數組的第一個元素將索引重新排列為升序。 </p><pre class="brush:php;toolbar:false">std::sort(index, index + 3, compareFirstElement);

步驟 4:使用排序索引存取資料

至存取排序後的數據,使用排序後的索引數組指向timeTable中的子數組數組。

for (int i = 0; i <p><strong>實例:</strong></p><p>[實例](https://wandbox.org/permlink/sXTyuT2fubLi4j7i)</p><p><strong>注意:</strong>這種方法也可以應用於物件陣列的排序或包含可排序資料的結構。 </p>

以上是如何在 C 中依第一個元素對數組數組進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn