JS实现冒泡排序

2016年07月24日Web前端0

作为前端开发者,你需要使用js去做任何事情。虽然排序在浏览器端没有什么太大的用处,尤其是对数组的排序,毕竟存在Array.prototype.sort()这个内置的方法。

冒泡排序就是每次比较两个值,将最大或最小值“浮动”到一侧。

如(从小到大):var arr = [2, 9, 1, 4, 5];
第一组比较(找出最大值),将其“冒泡”到最右侧
第一次比较 2与9,[2, 9, 1, 4, 5]
第二次比较9与1,[2, 1, 9, 4, 5]
第三次比较9与4,[2, 1, 4, 9, 5]
第四次比较9与5,[2, 1, 4, 5, 9]
这样数组中的最大值9就到了最后,接下来进行第二组比较(只需比较3次,最大值9无需比较),来找出第二大的值......... JS代码实现如下:

function bubbleSort(arr) {
    var len = arr.length,
    temp = 0;

    for (var i = 0; i < len; ++i) {
        for (var j = 0; j < len - 1 - i; ++j) {
            if (arr[j] > arr[j + 1]) {
                temp = arr[j + 1];
                arr[j + 1] = arr[j];
                arr[j] = temp;
            }
        }
   }

   return arr;
}

目录