Open wangyuan0108 opened 5 years ago
图解:
简单实现:
const selectionSort = arr => {
const len = arr.length
let min
for (let i = 0; i < len - 1; ++i) {
min = i /* 初始化未排序序列中最小数据数组下标 */
for (let j = i + 1; j < len; ++j) { /* 访问未排序的元素 */
if (arr[j] < arr[min]) { /* 找到目前最小值 */
min = j /* 记录最小值 */
}
}
[arr[i], arr[min]] = [arr[min], arr[i]] /* 交换位置 */
}
return arr
}
选择排序(Selection sort) 是一种简单直观的排序算法。
选择排序的主要优点与数据移动有关。
如果某个元素位于正确的最终位置上,则它不会被移动。
选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对 n 个元素的表进行排序总共进行至多 n - 1 次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。
选择排序的算法步骤如下: