>백엔드 개발 >C++ >C에서 각 하위 배열의 첫 번째 요소로 배열 배열을 정렬하는 방법은 무엇입니까?

C에서 각 하위 배열의 첫 번째 요소로 배열 배열을 정렬하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-17 01:05:03346검색

How to Sort an Array of Arrays by the First Element of Each Subarray 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}};

  // Sort the indices based on the first item of each subarray
  std::sort(index, index + 3, [&](int n1, int n2) { return timeTable[n1][0] < timeTable[n2][0]; });

  // Iterate over the sorted indices and access the corresponding subarrays
  for (int i = 0; i < 3; ++i) {
    std::cout << "The index is " << index[i] << ". The data at this index is [";
    std::cout << timeTable[index[i]][0] << " " << timeTable[index[i]][1] << "]\n";
  }

  return 0;
}

이 스니펫에서는 인덱스 배열을 생성하고 다음을 사용하여 정렬합니다. 인덱스 n1과 n2에 있는 하위 배열의 첫 번째 요소를 비교하는 사용자 정의 정렬 기준입니다. 정렬 후에는 재정렬된 인덱스 배열을 통해 정렬된 하위 배열에 액세스할 수 있습니다.

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

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