选择排序 这样做 是不是更好

来源:5-2 选择排序

饕餮3

2019-02-25

export default(arr)=>{
for(let i=0;i<arr.length;i++){
let minIndex=i
for(let j=i+1;j<arr.length;j++){
if(arr[j]<arr[minIndex]){
minIndex=j //内层循环时记录下最小索引值
}
}
let temp=arr[i] //内层循环结束后,将记录下的最小值放在最前面
arr[i]=arr[minIndex]
arr[minIndex]=temp
}
return arr
}

// 老师您的做法我是真的没太理解,感觉是内层循环只要有最小值 就要交换

写回答

2回答

wukongkong

2019-08-11

我也是这样写的,明显是有问题的... 这样的化,其实是冒泡排序。

选择排序arr[i] 最多被修改arr.length次数,而这样写的话就多多了...


0
0

快乐动起来呀

2019-02-25

那个动画你看了吗?建议你多看两遍,这道题目就是选择排序的理论讲解,有时候面试题会要求用选择排序。或者说利用选择排序去解决问题,同学多一点耐心呀

0
6
YUKI酱不要打酱油
回复
快乐动起来呀
不应该直接在内层循环交换位置,这确实和动画不符,然后这样做的时间要比记录索引值最后再要交换长一些
2020-02-12
共6条回复

JavaScript版 数据结构与算法

填补前端同学的算法短板,掌握面试中最常见的算法与数据结构

2467 学习 · 393 问题

查看课程