Algorithm 선택(selection) 정렬

시작하기

선택 정렬은 첫 번째 자료를 두 번째 자료부터 마지막까지의 자료를 차례대로 비교하여 가장 작은 값을 찾아 첫 번째에 놓고,
두 번째 자료를 세 번째 자료부터 마지막자료까지 차례대로 비교하여 그 중에 가장 작은 값을 찾아 두번째에 놓는 과정을 반복하여 정렬을 수행합니다.

배열 [2, 5, 1, 7, 3, 9, 6]가 있으면 가장 작은수인 1을 첫번째 2와 바꿉니다.
[1, 5, 2, 7, 3, 9, 6] 다음 가장 작은수인 25와 바꿉니다.
[1, 2, 5, 7, 3, 9, 6] 다음과 같은 과정을 반복합니다.

결과 [1, 2, 3, 5, 6, 7, 9]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const numbers = [5, 1, 4, 7, 2, 6, 8, 3];
const selectionSort = (numberArray) => {
const length = numberArray.length;
let minIndex, temp, i, j;
for (i = 0; i < length - 1; i++) {
minIndex = i;
for (j = i + 1; j < length; j++){
if(numberArray[j] < numberArray[minIndex]){
minIndex = j;
}
}
temp = numberArray[minIndex];
numberArray[minIndex] = numberArray[i];
numberArray[i] = temp;
}
return numberArray
}
selectionSort(numbers);
Share