본문 바로가기
IT/C , C++

[c++] sort 활용한 vector 정렬 (오름차순, 내림차순)

by 신도리아 2023. 4. 17.

algorithm의 sort는 기본 퀵 정렬이기 때문에

O(n log n)의 시간복잡도를 가진다.

 

1. 오름차순

 

 

소스 코드:

#include <iostream>
#include <vector>
#include <algorithm> // sort 사용 위함
using namespace std;

int main(){
  int N;
  cin >> N;
  
  vector<int> v(N,0);

  // 벡터 값 입력
  for(int i=0; i<N; i++){
    cin >> v[i];
  }

  // 오름차순 정렬 전의 벡터 출력
  for(int i=0; i<N; i++){
    cout << v[i] << " ";
  }cout << "\n";

  // 오름차순 정렬
  sort(v.begin(),v.end());

  // 오름차순 정렬 후의 벡터 출력
  for(int i=0; i<N; i++){
    cout << v[i] << " ";
  }cout << "\n";
  
}

출력 결과:

sh -c make -s
./main
10 // 입력
33 22 48 2 49 37 95 13 11 94 // 입력
33 22 48 2 49 37 95 13 11 94 // 정렬 전
2 11 13 22 33 37 48 49 94 95 // 정렬 후

 


 

2. 내림차순

 

소스 코드:

#include <iostream>
#include <vector>
#include <algorithm> // sort 사용 위함
using namespace std;

int main(){
  int N;
  cin >> N;
  
  vector<int> v(N,0);

  // 벡터 값 입력
  for(int i=0; i<N; i++){
    cin >> v[i];
  }

  // 내림차순 정렬 전의 벡터 출력
  for(int i=0; i<N; i++){
    cout << v[i] << " ";
  }cout << "\n";

  // 내림차순 정렬
  sort(v.rbegin(),v.rend());

  // 내림차순 정렬 후의 벡터 출력
  for(int i=0; i<N; i++){
    cout << v[i] << " ";
  }cout << "\n";
  
}

오름차순 : sort (v. begin(), v.end())

내림차순 : sort (v. rbegin(), v.rend())

 

 

출력 결과:

sh -c make -s
./main
10 // 입력
33 22 48 2 49 37 95 13 11 94 // 입력
33 22 48 2 49 37 95 13 11 94 // 내림차순 정렬 전
95 94 49 48 37 33 22 13 11 2 // 내림차순 정렬 후

 

'IT > C , C++' 카테고리의 다른 글

[c언어] qsort()로 정렬하기  (0) 2022.10.05