前端常考算法

  • 冒泡排序

function maopao(arr) {
   for(let i =0; i<arr.length; i++) {
     for(let j=0; j<arr.length-i; j++){
       if(arr[j]>arr[j+1]){
         [arr[j],arr[j+1]] = [arr[j+1],arr[j]]
       }
     }
   }
  return arr
}
  • 快速排序

function quickSort(arr, start, end) {
    if (start > end) {
        return;
    }
    let i = start,
        j = end,
        pivot = arr[start]; //存放基准数
    while (i !== j) {
        // 从右边开始,找第一个小于基准的位置
        while (arr[j] >= pivot && i < j) {
            j--;
        }
        // 从左边开始,找第一个大于基准的位置
        while (arr[i] <= pivot && i < j) {
            i++
        }
        // 交换两个数
        if (i < j) {
            let tmp = arr[i];
            arr[i] = arr[j];
            arr[j] = tmp;
        }
    }
    // 最后把基准数归位
    arr[start] = arr[i];
    arr[i] = pivot;
    // 递归处理左边
    quickSort(arr, start, i - 1);
    // 递归处理右边
    quickSort(arr, i + 1, end);
}
var arr = [6, 1, 2, 7, 9, 3, 4, 5, 10, 8];
quickSort(arr, 0, arr.length - 1);
console.log(arr);
  • 比较两个对象是否相同
    //简易版
    
    function diff(obj1,obj2){
    	let o1 = obj1 instanceof Object;
    	let o2 = obj2 instanceof Object;
    
    
    	if( !o1 || !o2 ){
    		return obj1 === obj2
    	}
    	if( Object.keys(obj1).length !== Object.keys(obj2).length ){
    		return false;
    	}
    	for(let key in obj1){
    		let o1 = obj1[key] instanceof Object;
    		let o2 = obj2[key] instanceof Object;
    		if(o1 && o2){
    			return diff(obj1[key],obj2[key]);
    		}
    		else if(!o1 && !o2){
    			return obj1[key] === obj2[key];
    		}
    		else {
    			return false;
    		}
    	}
    }

     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值