분류 전체보기
-
병합 정렬 알고리즘(Merge Sort) 병합 정렬은 데이터 배열을 정확히 반으로 나누고 나중에 합쳐서 정렬하는 방식입니다. 정확하게 5:5로 나누기때문에 피벗(Pivot)이 존재하지 않습니다. 8 2 6 5 1 4 2 7 위와 같은 수가 있을 때 수들을 오름차순하는 병합 정렬을 해보겠습니다. 8개의 데이터를 나눌 수 없을때까지 반으로 나누면 크기가 1인 배열로 나누어집니다. 8 | 2 | 6 | 5 | 1 | 4 | 2 | 7 나누는 과정이 끝났다면 이제 데이터를 2의 배수만큼 합치고 합치는 순간 각각을 정렬합니다. 1차 합 : 2 8 | 5 6 | 1 4 | 2 7 2차 합 : 2 5 6 8 | 1 2 4 7 3차 합 : 1 2 2 4 5 6 7 8 알고리즘 구현 // Algorithm Analysi..
[알고리즘] 병합 정렬 알고리즘 (Merge Sort)병합 정렬 알고리즘(Merge Sort) 병합 정렬은 데이터 배열을 정확히 반으로 나누고 나중에 합쳐서 정렬하는 방식입니다. 정확하게 5:5로 나누기때문에 피벗(Pivot)이 존재하지 않습니다. 8 2 6 5 1 4 2 7 위와 같은 수가 있을 때 수들을 오름차순하는 병합 정렬을 해보겠습니다. 8개의 데이터를 나눌 수 없을때까지 반으로 나누면 크기가 1인 배열로 나누어집니다. 8 | 2 | 6 | 5 | 1 | 4 | 2 | 7 나누는 과정이 끝났다면 이제 데이터를 2의 배수만큼 합치고 합치는 순간 각각을 정렬합니다. 1차 합 : 2 8 | 5 6 | 1 4 | 2 7 2차 합 : 2 5 6 8 | 1 2 4 7 3차 합 : 1 2 2 4 5 6 7 8 알고리즘 구현 // Algorithm Analysi..
2021.07.06 -
[백준] 알고리즘 2752. 수 정렬하기 https://www.acmicpc.net/problem/2752 2752번: 세수정렬 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. www.acmicpc.net 문제 동규는 세수를 하다가 정렬이 하고싶어졌다. 숫자 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어 졌다. 숫자 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오. 입력 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. 출력 제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다. #include int..
[백준] 알고리즘 2752. 세수 정렬[백준] 알고리즘 2752. 수 정렬하기 https://www.acmicpc.net/problem/2752 2752번: 세수정렬 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. www.acmicpc.net 문제 동규는 세수를 하다가 정렬이 하고싶어졌다. 숫자 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어 졌다. 숫자 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오. 입력 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. 출력 제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다. #include int..
2021.07.06 -
[백준] 알고리즘 2750. 수 정렬하기 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. #i..
[백준] 알고리즘 2750. 수 정렬하기[백준] 알고리즘 2750. 수 정렬하기 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. #i..
2021.07.06 -
퀵 정렬 알고리즘 (Quick Sort) 퀵 정렬은 특정 데이터를 기준으로 큰 데이터와 작은 데이터를 서로 교환한 후 배열을 두 집합으로 나누는 방식의 알고리즘입니다. 기준이 되는 특정한 데이터, 즉 기준점을 피벗(Pivot)이라고 하며 일반적으로 첫번째 원소를 먼저 피벗으로 지정합니다. 퀵 정렬 알고리즘은 한번 과정을 이해하면 어렵지 않은 알고리즘이기에 정렬 과정을 자세히 풀이하겠습니다. 4 9 1 6 11 10 3 15 2 13 위와 같은 수가 있을 때 수들을 오름차순하는 퀵 정렬을 해보겠습니다. 먼저 피벗 값은 4로 시작하여 4를 기준으로 왼쪽부터 큰 값을 찾고 오른쪽 부터 작은 값을 찾는 과정을 수행합니다. 4 9 1 6 11 10 3 15 2 13 4 2 1 6 11 10 3 15 9 13 큰 ..
[알고리즘] 퀵 정렬 알고리즘 (Quick Sort)퀵 정렬 알고리즘 (Quick Sort) 퀵 정렬은 특정 데이터를 기준으로 큰 데이터와 작은 데이터를 서로 교환한 후 배열을 두 집합으로 나누는 방식의 알고리즘입니다. 기준이 되는 특정한 데이터, 즉 기준점을 피벗(Pivot)이라고 하며 일반적으로 첫번째 원소를 먼저 피벗으로 지정합니다. 퀵 정렬 알고리즘은 한번 과정을 이해하면 어렵지 않은 알고리즘이기에 정렬 과정을 자세히 풀이하겠습니다. 4 9 1 6 11 10 3 15 2 13 위와 같은 수가 있을 때 수들을 오름차순하는 퀵 정렬을 해보겠습니다. 먼저 피벗 값은 4로 시작하여 4를 기준으로 왼쪽부터 큰 값을 찾고 오른쪽 부터 작은 값을 찾는 과정을 수행합니다. 4 9 1 6 11 10 3 15 2 13 4 2 1 6 11 10 3 15 9 13 큰 ..
2021.07.06 -
삽입 정렬(Insertion Sort) 삽입 정렬은 필요할 때만 각 데이터를 적절한 위치에 삽입하는 정렬입니다. 무조건 위치를 교환하는 선택 정렬과 버블 정렬에 비해 다소 효율적이라고 볼 수 있습니다. 1 9 4 6 11 10 3 15 2 13 위와 같은 수가 있을 때 수들을 오름차순하는 삽입 정렬을 해보겠습니다. 삽입 정렬의 경우, 앞에 있는 원소들이 이미 정렬되어 있다고 가정합니다. 1 9 4 6 11 10 3 15 2 13 1 9 4 6 11 10 3 15 2 13 1 4 9 6 11 10 3 15 2 13 1 4 6 9 11 10 3 15 2 13 . . . 1은 앞의 원소가 없으므로 삽입할 위치가 없어 그대로 남습니다. 그 다음 원소인 9는 앞의 원소에서 대소를 비교하여 적절한 위치에 삽입할 수..
[알고리즘] 삽입 정렬 알고리즘 (Insertion Sort)삽입 정렬(Insertion Sort) 삽입 정렬은 필요할 때만 각 데이터를 적절한 위치에 삽입하는 정렬입니다. 무조건 위치를 교환하는 선택 정렬과 버블 정렬에 비해 다소 효율적이라고 볼 수 있습니다. 1 9 4 6 11 10 3 15 2 13 위와 같은 수가 있을 때 수들을 오름차순하는 삽입 정렬을 해보겠습니다. 삽입 정렬의 경우, 앞에 있는 원소들이 이미 정렬되어 있다고 가정합니다. 1 9 4 6 11 10 3 15 2 13 1 9 4 6 11 10 3 15 2 13 1 4 9 6 11 10 3 15 2 13 1 4 6 9 11 10 3 15 2 13 . . . 1은 앞의 원소가 없으므로 삽입할 위치가 없어 그대로 남습니다. 그 다음 원소인 9는 앞의 원소에서 대소를 비교하여 적절한 위치에 삽입할 수..
2021.07.05 -
버블 정렬 알고리즘 (Bubble Sort) 버블 정렬은 옆에 있는 데이터와 비교하여 더 작은 값을 앞으로 보내는 정렬입니다. 1 9 4 6 11 10 3 15 2 13 위와 같은 수가 있을 때 수들을 오름차순하는 버블 정렬을 해보겠습니다. 먼저 배열의 맨 앞부터 두 수씩 비교합니다. 1과 9를 비교하여 1이 더 작으므로 1을 정렬합니다. 그 다음 9와 4를 비교하여 4가 더 작으므로 9와 4의 위치를 교환하고 4를 정렬합니다. 그 다음 9와 6을 비교하여 6이 더 작으므로 9와 6의 위치를 교환하고 6를 정렬합니다. 그 다음 9와 6을 비교하여 6이 더 작으므로 9와 6의 위치를 교환하고 6를 정렬합니다. 1 9 4 6 11 10 3 15 2 13 1 4 9 6 11 10 3 15 2 13 1 4 6 ..
[알고리즘] 버블 정렬 알고리즘 (Bubble Sort)버블 정렬 알고리즘 (Bubble Sort) 버블 정렬은 옆에 있는 데이터와 비교하여 더 작은 값을 앞으로 보내는 정렬입니다. 1 9 4 6 11 10 3 15 2 13 위와 같은 수가 있을 때 수들을 오름차순하는 버블 정렬을 해보겠습니다. 먼저 배열의 맨 앞부터 두 수씩 비교합니다. 1과 9를 비교하여 1이 더 작으므로 1을 정렬합니다. 그 다음 9와 4를 비교하여 4가 더 작으므로 9와 4의 위치를 교환하고 4를 정렬합니다. 그 다음 9와 6을 비교하여 6이 더 작으므로 9와 6의 위치를 교환하고 6를 정렬합니다. 그 다음 9와 6을 비교하여 6이 더 작으므로 9와 6의 위치를 교환하고 6를 정렬합니다. 1 9 4 6 11 10 3 15 2 13 1 4 9 6 11 10 3 15 2 13 1 4 6 ..
2021.07.05