js排序方法

1//数组本身sort排序

  var arr=[1,2,14,65,3,97,24]
 
    //必须设置一个排序函数 a-b升序  b-a降序
    arr.sort(function(a,b){
       return a-b
    })
  console.log(arr);//[1, 2, 3, 14, 24, 65, 97]
  
 //冒泡
//相邻两个比较,小的去前面,再开始第二轮比较
    function fn (arr){
            for(var i =0;i<arr.length;i++){
            		for(var j=0;j<arr.length-i;j++){
                        ///相邻两个比较,小的去前面
            			if(arr[j]>arr[j+1]){
            					var temp=arr[j];           				
            					arr[j]=arr[j+1]
            arr[j+1]=temp
            					}
            				}
            		}
            return arr;
        }
     console.log(fn(arr));
//========选择排序=============
//外层循环遍历每一项,第一次用第一个数跟后面所有的比较,小的去第一个;
//第二次用第二个跟后面所有比较,小的去第二个
     function xuanze (arr){
         for(var i =0;i<arr.length;i++){
             for(var j=i+1;j<arr.length;j++){
                 if(arr[i]>arr[j]){
                     var temp=arr[i];
                     arr[i]=arr[j];
                     arr[j]=temp;

                 }
             }
         }
         return arr;
     }
     console.log(xuanze(arr));

快排

function quickSort(arr){
	//如果数组<=1,则直接返回
	if(arr.length <= 1) return arr
	
	var zhongIndex = Math.floor(arr.length / 2)
	//取出中间下标对的值,原值删除
	var zhong = arr.splice(zhongIndex, 1)[0]
	//定义左右数组
	var left = [], right = []
	//比基准小的放在left,比基准大的放在right
	for(var i = 0; i < arr.length; i++){
	    if(arr[i] <= zhong){
	        left.push(arr[i])
	    }else{
	        right.push(arr[i])
	    }
	}
	 //最后将数组连接 ,左右数组递归调用
	return quickSort(left).concat([zhong],quickSort(right))
}
console.log(quickSort(arr));
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值