为了账号安全,请及时绑定邮箱和手机立即绑定

关于冒泡排序

关于冒泡排序

慕勒5811226 2016-09-26 00:36:20
var arr=[2,5,3,1,7,8,78,89]; function bubbleSort(arr){ for(var i = 0;i<arr.length;i++){  for(var j=0;j<arr.length-1-i;j++){ if(arr[j]<arr[j+1]){ var temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } return arr; } console.log(bubbleSort(arr)) ;j<arr.length-1-i //是减掉之前的索引值为什么还要减1?
查看完整描述

3 回答

已采纳
?
蓝with黑

TA贡献5条经验 获得超0个赞

你var j=0 改成j=1就不需要-1了。这样更好理解。

查看完整回答
反对 回复 2016-09-26
?
MarlboroKay

TA贡献189条经验 获得超236个赞

补充一下:如果 j = i+1  的话,你的判断条件要改一下

 if(arr[i]>arr[j]){
    var temp = arr[j];
    arr[j] = arr[i];
    arr[i] = temp;
 }

要减1是因为,要依次比较。例如:第二个要与第一个比较。但是总长度要减一要不然数组就越界了。

望采纳!

查看完整回答
反对 回复 2016-09-26
?
MarlboroKay

TA贡献189条经验 获得超236个赞

因为你的j是从0开始的。如果j是i+1的话,就不用减了。

查看完整回答
反对 回复 2016-09-26
  • 3 回答
  • 0 关注
  • 1370 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信