본문 바로가기

Algorithm/Sorting

(2)
[C++] 백준 2750번 : 수 정렬하기 (S5) #문제 www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net #풀이 시간복잡도가 O(n²)인 정렬 알고리즘을 구현하는 문제이다. 시간복잡도가 O(n²)인 정렬 알고리즘에는 Insertion Sort, Selection Sort, Bubble Sort가 있고, 이들을 각각 모두 구현해 보았다. Insertion Sort(삽입 정렬)은 index를 1부터 n-1까지 이동시키며 해당되는 위치의 값을 임시저장한 후, 적합한 자리를 찾기 위해 정렬된 부분인 앞쪽으로 비교해간다...
[C++] 백준 2751번 : 수 정렬하기 2 (S5) #문제 www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net #풀이 이번 문제는 C++ STL sort()함수를 통해 해결하였다. sort()는 algorithm헤더에 포함되어 있으며, 기본적으로 오름차순 정렬을 수행한다. 인자로는 배열의 시작주소와, 배열의 마지막주소+1을 전달하면 된다. 이때 sort()에 세번째 인자로 함수를 넣어주면 그 함수의 반환 값에 따라 정렬이 동작한다. ex) bool compare(int a, int b){ return..