주어진 데이터 중 가장 작은 값부터 차례대로 선택해서 나열하는 방식
정렬되지 않은 데이터 중 가장 작은 값 선택 후 첫 번째 요소와 교환
시간복잡도 O(n²)
function selectionSort(array) { const len = array.length; let minIndex, temp; for (i = 0; i < len - 1; i++) { // 처음부터 훑으면서 minIndex = i; for (j = i + 1; j < len; j++) { // 최솟값 위치 찾고 if (array[j] < array[minIndex]) { minIndex = j; } } temp = array[minIndex]; // 최솟값 저장 array[minIndex] = array[i]; array[i] = temp; // 최솟값을 앞으로 전달 } return array; }; selectionSort([5,1,4,7,2,6,8,3]); // [1,2,3,4,5,6,7,8]
Last updated 6 years ago