冒泡排序

var arr=[11,3,51,5,6]
function bubbleSort(arr) {
            var len = arr.length;
            for (var i = 0; i < len; i++) {
                      for (var j = 0; j < len - 1 - i; j++) {
                              if (arr[j] > arr[j+1]) { //相邻元素两两对比
                                  var temp = arr[j+1]; //元素交换
                                  arr[j+1] = arr[j];
                                  arr[j] = temp;
                               }
               }
}
return arr;
}

结果[2,5,6,11,51]

i是整个arr的长度,每次i取值后都会用j进行一次循环,但由于i是从0开始取数的,所以如果不想让j循环次数错误,必须让j循环为5-1,而冒泡排序的结果是会在每次循环后将把最大值滞后,所以每次循环后让j<5-1-j,以保证下一次循环不再去对比已滞后的值

posted @ 2017-04-27 18:51  董晓瑞  阅读(131)  评论(0编辑  收藏  举报