首页 > 编程语言 > 详细

冒泡排序算法的JavaScript实现

时间:2017-03-08 22:40:57      阅读:187      评论:0      收藏:0      [点我收藏+]

作为经典的排序算法之一,冒泡排序在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实现

原文:http://www.cnblogs.com/yungtsan/p/6523236.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!