CS/자료구조, 알고리즘
unstable/stable sort
joaa
2022. 1. 6. 18:41
대표적인
stable sort:
- Insertion Sort 삽입 정렬
- Merge Sort 합병 정렬
- Bubble Sort 버블 정렬
- Counting Sort 계수 정렬
unstable sort:
- Selection sort 선택 정렬
- Heap Sort 히프 정렬
- Shell Sort 쉘 정렬
- Quick Sort 퀵 정렬
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(pair<int, string> l1, pair<int, string> l2){
return l1.first < l2.first;
}
int main(){
int n;
cin >> n;
vector<pair<int, string>> member;
for(int i=0; i<n; i++){
int age;
string name;
cin >> age >> name;
member.emplace_back(age, name);
}
stable_sort(member.begin(), member.end(), compare);
for(int i=0; i<n; i++){
cout << member[i].first << ' ' << member[i].second << '\n';
}
}
sort는 quick sort, stable_sort는 merge sort로 구현된다.
그냥 sort는 comparator에서 & 주소연산자를 써야하는데(안써도 되나?)
stable_sort는 & 주소 연산자를 쓰면 에러가 나는 이유는 뭘까