常用数组排序方法

  1. 冒泡排序方法
    获取第一个数字与第二个数字进行比较,如果第一个数字比第二个数字大 则与第二个数字交换位置
var arr = [1, 9, 4, 50, 49, 6, 3, 2];
 		for(var  i = 0; i<arr.length-1 ;i++){
 			for(var j = i+1 ;j<arr.length;j++){
 				var val1 = arr[i]; 
 				var val2 = arr[j];
 				if(val1 > val2){
 					arr[i] = val2;
 					arr[j] = val1;
 				}
 			}
 		}
 console.log(arr)

2.快速排序方法
在数组中间取一个值,用这个值跟数组内的元素进行比较如果小于则放一边,大于放另一边;然后进行合并再次重复对比;

var arr = [1, 9, 4, 50, 49, 6, 3, 2];
function test(arr){
 			if (arr.length <= 1) return arr;
 			var index = Math.floor(arr.length / 2);
 			var cur = arr.splice(index,1);
 			var left = [],right=[];
 			for(var i = 0;i<arr.length;i++){
 				if(cur>arr[i]){
 					left.push(arr[i])
 				}else{
 					right.push(arr[i])
 				}
 			}
 			return test(left).concat(cur, test(right));//通过递归,上一轮比较好的数组合并,并且再次进行比较
}
 	  	var newArry =  test(arr)
 	    console.log(newArry)

3.sort方法

 var arr = [1, 9, 4, 50, 49, 6, 3, 2];
		function test(){
		  return arr.sort(sortNumber);
		}
		function sortNumber(a, b){
		  return a - b; //倒序b-a
		}
		test();

4.排序数组中的对象

var arr = [
			{
				name:'苹果',
				price:10
			},{
				name:'香蕉',
				price:8
			},{
				name:'菠萝',
				price:12
			}
		]
		arr.sort((a,b)=>{return a.price-b.price})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值