JavaScript实现数组的排序算法

冒泡排序

var arr = [1,5,8,7,96,452,11,23];
//冒泡排序
function bubbleSort(arr){
    let len = arr.length-1;
    for(var i = 0;i< len;i++){
        for(var j = 0;j<len-i;j++){
            if(arr[j]>arr[j+1]){
                [arr[j+1],arr[j]] = [arr[j],arr[j+1]];
            }
        }
    }
    console.log(arr);
}
bubbleSort(arr);

选择排序

var arr = [1,5,8,7,96,452,11,23,-2];
function selectSort(arr){
    let len = arr.length;
    for(var i = 0;i<len;i++){
        for(var j =i+1;j<len;j++){
            if(arr[i]>arr[j]){
                [arr[i],arr[j]] = [arr[j],arr[i]];
                // console.log(arr);
            }
        }
    }
    console.log(arr);
}
selectSort(arr);

插入排序

function insertionSort(arr) {
    for(var i = 1;i<arr.length;i++){
        let index = i;
        while(!(index==0)){
            if(arr[index]<arr[index-1]){
                [arr[index],arr[index-1]] = [arr[index-1],arr[index]];
            }
            index--;
        }
       
    }
  return arr;
}
console.log(insertionSort(arr));;

快速排序

function quickSort(arr){
 //4.结束递归,当ary中小于等于一项,则不用处理
    if(arr.length<=1){
        return arr
    }
    //1.找到数组的中间项,在原有的数组里移除他
    let middleValue = arr.splice(Math.floor(arr.length/2),1)[0];
    //2.准备左右两个数组,循环剩下数组里的每一项,比当前项小的放到左边数组里,反之放到右边数组里
    let arrLeft = [],arrRight = [];
    for(let i =0;i<arr.length;i++){
        arr[i]<middleValue?arrLeft.push(arr[i]):arrRight.push(arr[i]);
    }
    //3.递归方式让左右两边的数组持续这样处理,一直到左右都排好为止,最后concat
    return quickSort(arrLeft).concat(middleValue,quickSort(arrRight));
}
console.log(quickSort(arr));

**

JS的Array内置的sort

Array.prototype.sort()

arr.sort((a,b)=>{
	return a - b;
})

**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值