본문 바로가기
반응형

알고리즘/정렬5

[알고리즘] 병합 정렬 (Merge Sort) 알고리즘 병합 정렬(Merge Sort)의 알고리즘은 다음과 같습니다. [일단 반으로 나누고, 나중에 병합해 준다] 정렬할 배열을 모두 크기가 1인 개별 배열인 상태로 시작합니다. 크기가 1이었던 배열들을 크기가 2인 배열로 묶으면서 정렬을 수행합니다. 모두 합칠 때까지 반복합니다. 예를 들어 다음 배열을 정렬해보겠습니다. [4 , 6 , 8 , 1 , 3 , 5 , 7 , 2 ] 1) 정렬할 배열은 모두 크기가 1인 개별 배열인 상태로 시작합니다. [ 4 ] [ 6 ] [ 8 ] [ 1 ] [ 3 ] [ 5 ] [ 7 ] [ 2 ] 2) 배열을 합치면서 정렬을 수행합니다. [ 4 , 6 ] [ 1 , 8 ] [ 3 , 5 ] [ 2 , 7 ] ↓ [ 1 , 4 , 6 , 8 ] [ 2 , 3 , 5 ,.. 2021. 2. 14.
[알고리즘] 퀵 정렬 (Quick Sort) 알고리즘 퀵 정렬(Quick Sort)의 알고리즘은 다음과 같습니다. 정렬의 기준 값인 피봇(Pivot) 값을 설정합니다. 피봇 값보다 큰 숫자를 왼쪽부터 찾고, 피봇 값보다 작은 숫자를 오른쪽부터 찾습니다. 만약 작은 숫자의 index가 큰 숫자의 index보다 작으면 엇갈린 상황으로, 왼쪽의 작은 값과 피봇 값의 위치를 바꿔줍니다. 큰 숫자와 작은 숫자의 위치를 바꿔줍니다. 이를 배열이 정렬될 때까지 반복합니다. 이렇게 보면 처음에는 무슨 말인지 이해하기 어렵습니다. 예를 들어 다음 배열을 정렬해보며 쉽게 이해해 봅시다. [4 , 6 , 8 , 1 , 3 , 5 , 7 , 2 , 10 , 9] 1-1) 피봇 값을 선택합니다. 보통 첫 번째 원소를 피봇 값으로 설정합니다. 피봇 값 = 4 피봇 값인 4.. 2021. 2. 14.
[알고리즘] 삽입 정렬 (Insertion Sort) 알고리즘 삽입 정렬(Insertion Sort)의 알고리즘은 다음과 같습니다. 두 번째 원소부터 시작해 해당 원소가 이전 원소들과 비교해 어디에 삽입할지 결정 이를 마지막 원소까지 반복합니다 예를 들어 다음 배열을 정렬해 보겠습니다. [4 , 6 , 8 , 1 , 3 , 5 , 7 , 2 , 10 , 9] 1) 두 번째 원소인 6을 이전 원소들인 4와 비교해 어디에 삽입할지 결정합니다. 6은 4보다 크니 두 번째 상자에 삽입합니다. □ 4 □ ◀ 6을 어디에 삽입? [6 삽입] ↓ □ 4 ■ [4 , 6 , 8 , 1 , 3 , 5 , 7 , 2 , 10 , 9] 2) 세 번째 원소인 8을 이전 원소들인 4, 6과 비교해 어디에 삽입할지 결정합니다. 8은 6보다 크니 세 번째 상자에 삽입합니다. □ 4 .. 2021. 2. 13.
[알고리즘] 버블 정렬 (Bubble Sort) 알고리즘 버블 정렬(Bubble Sort)의 알고리즘은 다음과 같습니다. 첫 번째 원소부터 마지막 원소까지 바로 옆에 있는 원소와 비교해 작은 값을 앞으로 옮겨줍니다. 첫 번째 원소부터 마지막 이전 원소까지 바로 옆에 있는 원소와 비교해 작은 값을 앞으로 옮겨줍니다. 정렬될 때까지 이를 반복 예를 들어 다음 배열을 정렬해 보겠습니다. [4 , 6 , 8 , 1 , 3 , 5 , 7 , 2 , 10 , 9] 1-1) 4 와 6 비교해 4 7이니 8과 7 위치 변경 [4 , 6 , 1 , 3 , 5 , 2 , 8 , 7 , 9 , 10] [4 , 6 , 1 , 3 , 5 , 2 , 7 , 8 , 9 , 10] 2-8) 8 과 9 비교해 8 array[j + 1]) { temp = array[j]; array.. 2021. 1. 31.
[알고리즘] 선택 정렬 (Selection Sort) 알고리즘 선택 정렬(Selection Sort)의 알고리즘은 다음과 같습니다. 전체를 탐색해 최솟값을 찾아 첫 번째 원소로 저장 첫 번째 원소를 제외하고 나머지를 탐색해 최솟값을 두 번째 원소로 저장 전체를 탐색할 때까지 이를 반복 예를 들어 다음 배열을 정렬해 보겠습니다. [4 , 6 , 8 , 1 , 3 , 5 , 7 , 2 , 10 , 9] 1) 전체를 탐색해 최솟값인 "1"을 찾아내고, 제일 앞의 원소와 바꿔 줍니다 [4 , 6 , 8 , 1 , 3 , 5 , 7 , 2 , 10 , 9] [1 , 6 , 8 , 4 , 3 , 5 , 7 , 2 , 10 , 9] 2) 1을 제외한 나머지를 탐색해 최솟값인 "2"을 찾아내고 1을 제외하고 제일 앞의 원소와 바꿔 줍니다. [1 , 6 , 8 , 4 , .. 2021. 1. 31.
반응형