C에서 인덱스 추적을 사용한 정렬
원본 인덱스를 보존하면서 데이터를 정렬하는 것은 데이터 분석 및 조작에서 일반적인 작업입니다. C에서 이를 달성하려면 몇 가지 신중한 프로그래밍 기술이 필요합니다.
원본 인덱스를 추적하면서 샘플 시퀀스를 오름차순으로 정렬하려면 람다 표현식과 표준 라이브러리를 활용할 수 있습니다. 아래의 sort_indexes 함수는 이 접근 방식을 보여줍니다.
template <typename T> vector<size_t> sort_indexes(const vector<T> &v) { // Initialize original index locations vector<size_t> idx(v.size()); iota(idx.begin(), idx.end(), 0); // Sort indexes based on values in v using std::stable_sort to maintain original order for equal values stable_sort(idx.begin(), idx.end(), [&v](size_t i1, size_t i2) { return v[i1] < v[i2]; }); return idx; }
이 함수는 후속 반복에서 사용할 수 있는 인덱스 벡터를 반환합니다.
for (auto i : sort_indexes(v)) { cout << v[i] << endl; }
정렬 함수를 제공하도록 사용자 정의할 수 있습니다. 비교기 또는 sort_indexes 함수 내에서 원래 벡터의 자동 재정렬.
위 내용은 원본 인덱스를 추적하는 동안 C에서 데이터를 어떻게 정렬할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!