zoukankan      html  css  js  c++  java
  • js算法

    1.冒泡排序 

    function foo1(array){
       for(let i =0;i<array.length;i++){
        for(let j=0;j<array.length;j++){
          if(array[i]<array[j]){
            let temp = array[i]
            array[i] = array[j]
            array[j] = temp
          }
        }
       }
      return array
    }
    

    2.快速排序

    var values=[]
    function foo2(array){
    	if(array.length>1){
    		let key = ~~(array.length/2);
    		let list1 = []
    		let list2 = []
    		for(let o=0;o<array.length;o++){
    			if(array[o]<array[key]){
    				list1.push(array[o])
    			}
    			if(array[o]>array[key]){
    				list2.push(array[o])
    			}
    		}
    		list1.length!==0&&foo2(list1)
    		values.push(array[key])
    		list2.length!==0&&foo2(list2);
    	}else{
    		values.push(array[0])
    	}
    }
    

    3.选择排序

    var example=[8,94,15,88,55,76,21,39];
    function selectSort(arr){
        var len=arr.length;
        var minIndex,temp;
        console.time('选择排序耗时');
        for(i=0;i<len-1;i++){
            minIndex=i;
            for(j=i+1;j<len;j++){
                if(arr[j]<arr[minIndex]){
                    minIndex=j;
                }
            }
        temp=arr[i];
        arr[i]=arr[minIndex];
        arr[minIndex]=temp;
        }
        console.timeEnd('选择排序耗时');
        return arr;
    }
    

    5、不需要借助第三个临时变量,实现两个变量的交换

    function swap(a,b){
        b=b-a;
        a=a+b;
        b=a-b;
          return [a,b];
    
       }
    

    6、数组按属性排序  

    function compare(po){
    	return function(a,b){
    		let temp1 = a[po];
    		let temp2 = b[po];
    		return temp1-temp2
    	}
    }
    var list = [{
    	id:'a1',
    	num:21
    },
    {
    	id:'a2',
    	num:2211
    },
    {
    	id:'a3',
    	num:213
    },
    {
    	id:'a4',
    	num:221
    },
    {
    	id:'a5',
    	num:2111
    }];
    list.sort(a('id'))
    

      

  • 相关阅读:
    查看mysql服务器连接
    读懂MySQL执行计划
    学会MySQL索引
    记一个有趣的Java OOM!
    高并发场景系列(一) 利用redis实现分布式事务锁,解决高并发环境下减库存
    如何优雅的使用mybatis
    禁止页面后退JS(兼容各浏览器)
    如何做一个对账系统
    centos7.2进入单用户模式修改密码
    linux系统引导流程
  • 原文地址:https://www.cnblogs.com/zhangzhaowei/p/9286905.html
Copyright © 2011-2022 走看看