方法介绍: 该方法为选择排序,实现数组由小到大排序。思路: 遍历数组,找到最小的元素,放到新的数组,再遍历去除最小元素后的数组,找到最小的元素...输入: paraArr 数组输出: 由小到大排序的数...
方法介绍: 该方法为选择排序,实现数组由小到大排序。
思路: 遍历数组,找到最小的元素,放到新的数组,再遍历去除最小元素后的数组,找到最小的元素...
输入: paraArr 数组
输出: 由小到大排序的数组
时间复杂度: O(n^2)
//深拷贝
import { deepCopy } from './utils'
//获取数组中最小元素
const getMin = (arr) => {
let min = 0
for (let i = 0; i < arr.length; i++) {
if (arr[i] < arr[min]) {
min = i
}
}
return min
}
const SelectionSort = (paraArr) => {
if (!paraArr.length || paraArr.length <= 1) {
return null
}
let resArr = []
let arr = deepCopy(paraArr)
for (let i = 0; i < paraArr.length; i++) {
let index = getMin(arr)
resArr.push(arr[index])
arr.splice(index, 1)
}
return resArr
}
let arr = [7, 10, 3, 6, 5]
let resArr = SelectionSort(arr)
console.log(resArr)