>  기사  >  백엔드 개발  >  C의 첫 번째 요소를 기준으로 하위 배열 배열을 정렬하는 방법은 무엇입니까?

C의 첫 번째 요소를 기준으로 하위 배열 배열을 정렬하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-23 00:18:12853검색

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

C에서 하위 배열의 첫 번째 항목을 기준으로 배열 정렬

원래 배열은 두 가지 요소가 있는 하위 배열로 구성됩니다. 예: [[4, 204] , [10, 39], [1, 500]]. 목표는 각 하위 배열의 첫 번째 요소인 [[1, 500], [4, 204], [10, 39]]를 기준으로 이러한 배열을 정렬하는 것입니다.

정렬 기술

흥미롭게도 원본 배열 자체를 조작할 필요는 없습니다. 대신, 더 나은 접근 방식은 원래 배열 내의 하위 배열을 가리키는 인덱스 배열을 정렬한 다음 정렬된 인덱스를 사용하여 정렬된 요소에 액세스하는 것입니다.

이 기술의 이점

원래 배열 대신 인덱스를 정렬하는 것이 유리합니다. 언제:

  • 원래 배열 요소의 크기가 큽니다.
  • 배열의 원래 순서를 유지해야 합니다.
  • 원래 배열이 어색하거나 불가능합니다. 정렬 알고리즘으로 효율적으로 조작합니다.

예 구현

다음 예제 코드를 고려하세요.

#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";
    }
}

이 예제에서:

  • index는 값 0, 1로 초기화된 인덱스 배열입니다. , 2.
  • timeTable은 다음의 원래 배열입니다. subarrays.
  • std::sort는 timeTable에서 해당 하위 배열의 첫 번째 요소를 기준으로 인덱스를 정렬하는 데 사용됩니다.
  • 인덱스를 정렬한 후 정렬된 인덱스를 사용하여 정렬된 하위 배열에 액세스할 수 있습니다. for 루프에 표시된 배열입니다.

참고: 이 정렬 기술은 하위 배열 배열뿐만 아니라 배열 중 하나의 데이터를 기반으로 여러 배열을 병렬로 정렬해야 하는 시나리오에도 적용할 수 있습니다.

위 내용은 C의 첫 번째 요소를 기준으로 하위 배열 배열을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.