首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]算法-选择排序

发布于 2024-12-09 16:33:36
0
129

方法介绍: 该方法为选择排序,实现数组由小到大排序。思路: 遍历数组,找到最小的元素,放到新的数组,再遍历去除最小元素后的数组,找到最小的元素...输入: 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)
评论
一个月内的热帖推荐
久久在线
Lv.1普通用户

551

帖子

21

小组

2050

积分

赞助商广告
站长交流