JS实现冒泡排序

作为前端开发者,你需要使用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;
}

发表评论

电子邮件地址不会被公开。

*