码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序算法的JavaScript实现

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

标签:字符   方式   log   script   turn   i++   排序算法   ble   roo   

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

标签:字符   方式   log   script   turn   i++   排序算法   ble   roo   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!