冒泡排序算法的JavaScript实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序算法的JavaScript实现相关的知识,希望对你有一定的参考价值。

作为经典的排序算法之一,冒泡排序在javascript中也有多种实现方式。

在一些最常见的实现中会声明临时变量,在另一些不必声明临时变量的实现中则可能只支持数值数组或字符串数组(二者之一)。

下面介绍两种【无须声明临时变量】,【对数值数组和字符串数组都适用】的实现方式。

 

ES5版:

var arr = [5, 25, 2, 53, 22, 10];

function bubbleSort(arr) {
    for (var j = 1, len = arr.length; j < len; j++){
        for (var i = 0; i < len - j; i++) {
            if (arr[i] > arr[i + 1]) {
                arr[i + 1] = [arr[i], arr[i] = arr[i + 1]][0]; // 执行顺序
            }
        }
    }
    
    return arr;
}

console.log(bubbleSort(arr).toString()); // ‘2,5,10,22,25,53’

要点:在arr[i + 1]被重新赋值之前,arr[i]已经被重新赋值;而在arr[i]被重新赋值之前,其原值已经被保存在数组的0索引位置。

 

ES6版:

let arr = [‘Root‘, ‘Harold‘, ‘Sameen‘, ‘John‘];

const bubbleSort = (arr) => {
    for (let j = 1, len = arr.length; j < len; j++){
        for (let i = 0; i < len - j; i++) {
            if (arr[i] > arr[i + 1]) {
                [arr[i], arr[i + 1]] = [arr[i + 1], arr[i]]; // 解构
            }
        }
    }
    
    return arr;
}

console.log(bubbleSort(arr).toString()); // ‘Harold,John,Root,Sameen‘

要点:理解 ECMAScript 6 新增的解构赋值表达式。

 

the end


 

以上是关于冒泡排序算法的JavaScript实现的主要内容,如果未能解决你的问题,请参考以下文章

用JavaScript实现排序算法

冒泡排序算法的JavaScript实现

JavaScript实现常见排序算法:冒泡,插入,选择,归并,快速,堆排序

10种经典排序算法的JavaScript实现方法

JavaScript实现排序算法查找算法

冒泡排序算法JavaScript [关闭]