请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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
}

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

正在回答 回答被采纳积分+3

2回答

wukongkong 2019-08-11 11:04:49

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

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


0 回复 有任何疑惑可以回复我~
快乐动起来呀 2019-02-25 21:12:11

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

0 回复 有任何疑惑可以回复我~
  • 选择排序的本质就是 在每轮遍历中选择 最小值,并将其置于左侧。人家这写法没毛病,麻烦看下代码再回复。问答区,老师的回复,大都没什么价值,就是纯应付而已,估计慕课网有个回复率的指标吧。
    回复 有任何疑惑可以回复我~ 2019-02-27 23:45:21
  • _玲 #2
    我感觉也没问题,因为我也是这样写的……(^-^)
    回复 有任何疑惑可以回复我~ 2019-03-03 08:43:22
  • 我感觉也没问题
    回复 有任何疑惑可以回复我~ 2019-06-20 23:53:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信