# 原理
首先從原始數組中找到最小的元素,并把該元素放在數組的最前面,然后再從剩下的元素中尋找最小的元素,放在之前最小元素的后面,直到排序完畢。
# 性能
- 時間復雜度
平均O(n*n)
最好情況O(n*n)
最差情況O(n*n)
- 空間復雜度
O(1)
- 穩定性
不穩定
# 示例
```
let array = ['E', 'A', 'D', 'B', 'H']
let selectionSort = (array) => {
let minIndex
for (let i = 0, length = array.length; i < length; i++) {
minIndex = i
for (let j = i + 1; j < length; j++) {
if (array[j] < array[minIndex]) {
minIndex = j
}
}
[array[i], array[minIndex]]= [array[minIndex], array[i]]
}
return array
}
console.log(selectionSort(array))
```
# 解析
minIndex始終保存著最小值的位置的索引,隨著i的自增,遍歷的數組長度越來越短,直到完成排序。