選擇排序法的概念是,將陣列分為兩個部分,每次掃描未排序的部分時,從數列中拿出最小的數,丟到另一邊,最後就會得到一個完成排序的陣列。它的時間複雜度是 O(n^2)。
使用哪種資料結構:Array
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])