[알고리즘] 퀵 정렬 (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.
[알고리즘] 선택 정렬 (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.