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, [&](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"; } }
이 예제에서:
참고: 이 정렬 기술은 하위 배열 배열뿐만 아니라 배열 중 하나의 데이터를 기반으로 여러 배열을 병렬로 정렬해야 하는 시나리오에도 적용할 수 있습니다.
위 내용은 C의 첫 번째 요소를 기준으로 하위 배열 배열을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!