sorting 2

백준 2108 : 통계학

https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 접근방법 최빈값 같은 경우 정수의 절댓값이 4000을 넘지 않으므로 8001개의 원소를 가지는 배열을 생성 각 숫자가 나올때 +1을 해주었다. 나중에 배열을 검사하면서 제일 큰 원소를 찾고, 지금 있는 최댓값과 같은 원소가 있다면 두 번째까지만 인덱스를 저장한다. 정렬을 직접 구현하였는데 퀵소트로 구현할 경우 제출 시 46~50% 정도에서 많은 시간이 걸리는 것을 확인할 수 있다. 그래서 합병 정렬을 사용해 풀었다.

백준 2751 : 수 정렬하기 2

https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 퀵 정렬 사용 이 문제의 경우 n^2이면 시간 초과가 나므로 퀵 정렬을 사용할때 최악의 경우를 피해야한다. 가운데 원소를 피벗으로 사용한다. 그리고 입출력 할때 시간을 줄여야 한다. #include #include using namespace std; void print_vec(vector v, int num); vector init(vector v, int num); void Qso..