LeetCode
sort
selection sort
Learn More →
( 圖片來源 wiki )
邏輯:
arr <- an unsorted array of integers
let len be the length of arr
for i (0 to len-1) do
let minIndex = i
for j (i+1 to len-1) do
if (arr[j] < arr[minIndex]) then
minIndex = j
end if
end for
swap(arr, i, minIndex)
end for
func swap(arr, firstIndex, minIndex):
temp = arr[firstIndex]
arr[firstIndex] = arr[minIndex]
arr[minIndex] = temp
end func
程式碼實作:
debugger
function swap(arr, firstIndex, minIndex) {
temp = arr[firstIndex]
arr[firstIndex] = arr[minIndex]
arr[minIndex] = temp
}
function selectionSort(arr) {
for (let i = 0; i < arr.length; i++) {
let minIndex = i
for (j=i+1 ; j<arr.length ; j++) {
minIndex = (arr[j]<arr[minIndex]) ? j : minIndex
}
swap(arr, i, minIndex)
console.log(arr)
}
}
selectionSort([8, 9, 2, 5, 1])