Selection Sort 알고리즘은 배열을 반복하고 배열의 정렬되지 않은 부분에서 가장 작은 요소를 선택하여 배열의 정렬된 부분의 시작 부분에 배치함으로써 작동합니다.
알고리즘은 다음과 같이 작동합니다:
배열의 첫 번째 요소는 정렬된 하위 배열로 간주된다.
배열의 각 후속 요소에 대해:
a. 배열의 정렬되지 않은 부분에서 가장 작은 요소를 찾습니다.
b. 배열의 정렬되지 않은 부분에서 가장 작은 요소를 첫 번째 요소와 맞춥니다.
c. 정렬된 하위 배열의 경계를 오른쪽으로 이동합니다.
배열의 모든 요소가 정렬될 때까지 반복합니다.
코드는 아래와 같습니다.
function selectionSort(array) {
for (let i = 0; i < array.length - 1; i++) {
let minIndex = i;
for (let j = i + 1; j < array.length; j++) {
if (array[j] < array[minIndex]) {
minIndex = j;
}
}
if (minIndex !== i) {
let temp = array[i];
array[i] = array[minIndex];
array[minIndex] = temp;
}
}
return array;
}
selectionSort() 함수는 배열을 매개 변수로 사용하고 SelectionSort 알고리즘을 사용하여 배열을 정렬합니다. 함수는 먼저 첫 번째 요소(즉, 인덱스 0)부터 배열을 반복하고 최소 요소의 인덱스를 minIndex 변수에 할당합니다.
그런 다음 함수는 배열의 정렬되지 않은 부분에서 최소 요소를 검색하고 해당 인덱스를 minIndex 변수에 할당합니다.
함수가 최소 요소를 찾으면 배열의 정렬되지 않은 부분의 첫 번째 요소와 스왑합니다.
함수는 배열의 모든 요소에 대해 이 프로세스를 반복하여 정렬된 배열을 만듭니다.
결과는 아래와 같습니다
selectionSort([5, 3, 13, 2, 11, 4, 7])
console.log(selectionSort([5, 3, 13, 2, 11, 4, 7]))//[ 2, 3, 4, 5, 7, 11, 13 ]