选择排序
2018/5/19 Javascript算法
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。
简单选择排序的基本思想: 第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换; 第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换; 以此类推, 第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。
最佳情况:T(n) = O(n^2) 最差情况:T(n) = O(n^2) 平均情况:T(n) = O(n^2)
const selectSort = (arr) => {
let len = arr.length, min;
for (let i = 0; i < len - 1; i++) {
min = i;
for (let j = i + 1; j < len; j++){
arr[j] < arr[min] && (min = j);
}
min != i && swap(i,min,arr);
}
return arr
}