JS数组排序

一:冒泡排序

    function bubbleSort( array) {
     var i = 0, len = array.length, j, d;         for (; i < len; i ++) {
     for (j = 0; j < len; j ++) {
     if (array[i] < array[j]) {
     d = array[j]; array[j] = array[i]; array[i] = d;
     }
     }
    }
     return array;
    }
    var array1 = [ 2, 5, 1, 9];
    bubbleSort(array1)
========》[1,2,5,9]


二:利用sort进行排序

function useSort( array) {
return array. sort( function ( a, b) { return a - b; });
}

var array1 = [ 2, 5, 1, 9];
useSort(array1)


三:基准排序

    在数据集中,选择一个元素作为基准,所有小于这个基准的,移到左边,大于这个基准的,移到右边。
    对基准左右两边的两个子集,不断重复选择基准,移动的操作,直到所有子集只剩下一个元素为止。

    f unction quickSort( arr) {
if (arr.length <= 1) { return arr };
var pivotIndex = Math. floor(arr.length / 2);
var pivot = arr. splice(pivotIndex, 1)[ 0];
var left = [];
var right = [];
for ( var i = 0; i < arr.length; i ++) {
if (arr[i] < pivot) {
left. push(arr[i]);
} else {
right. push(arr[i]);
}
}
return quickSort(left). concat([pivot], quickSort(right));
}
var arr =[ 1, 4, 2, 20, 7, 3]
quickSort(arr)







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值