Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ STL을 사용한 삽입 정렬

<시간/>

이 자습서에서는 C++ STL을 사용하여 삽입 정렬을 이해하는 프로그램에 대해 설명합니다.

여기서 우리는 std::upper_bound를 사용하여 잘못된 위치에 있는 요소를 찾은 다음 배열의 정렬되지 않은 부분을 회전하여 정렬합니다.

예시

#include <bits/stdc++.h>
//function to perform insertion sort
void insertionSort(std::vector<int> &vec){
   for (auto it = vec.begin(); it != vec.end(); it++){
      auto const insertion_point =
      std::upper_bound(vec.begin(), it, *it);
      std::rotate(insertion_point, it, it+1);
   }
}
//printing the array
void print(std::vector<int> vec){
   for( int x : vec)
   std::cout << x << " ";
   std::cout << '\n';
}
int main(){
   std::vector<int> arr = {2, 1, 5, 3, 7, 5, 4, 6};
   insertionSort(arr);
   print(arr);
   return 0;
}

출력

1 2 3 4 5 5 6 7