오도원입니다.

건강과 행복을 위하여

컴퓨터공학/알고리즘

[codeup] 3014. 정렬을 빠르게

오도원공육사 2020. 4. 19. 21:31
반응형

https://codeup.kr/problem.php?id=3014

 

정렬을 빠르게!

첫 줄에 데이터의 개수 N이 입력된다. ( 1 <= N <= 4,500,000 ) ※ 조건수정(2012.12.20) 둘째 줄에 공백으로 분리되어 N개의 데이터가 입력된다. ( 데이터 값의 범위 : 0 ~ 100,000 )

codeup.kr

1. 문제

데이터를 정렬하라.

 

2. 알고리즘

시간복잡도 O(NlogN) 정렬 함수를 구현하여 정렬해보자.

3. 주의할 점

sort함수를 사용하면 안되고, 데이터의 개수가 최대 450만개이므로 O(N^2) 정렬을 수행하면 절대로 풀 수 없다. O(N^2)으로 100만개 데이터를 정렬하면 100만 * 100만 = 10000000000000000(일조)번 연산을 수행하지만 O(NlogN)은 100만 * 20 = 20000000(2천만)번 연산을 수행한다. 

 

cf. 일반적으로 logN은 밑이 10인 상용로그를 말하지만 컴퓨터 과학에서는 밑이 2인 로그를 말한다.

 

4. 소스코드

 

반응형

'컴퓨터공학 > 알고리즘' 카테고리의 다른 글

동적계획법 소개  (0) 2020.05.01
[codeup] 3720. nCr  (0) 2020.04.20
[codeup] 3019. 스케줄 정리  (0) 2020.04.19
[codeup] 3004. 데이터 재정렬  (0) 2020.04.19
[codeup] 3006. 완전 제곱수 찾기  (0) 2020.04.19