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'))
    

      

  • 相关阅读:
    Hello,Cnblogs,I'm Kxia
    运维
    CRT 操作数据库乱码
    STM32 各引脚功能
    遍历结果集
    更换税控服务器主板后,重新申请注册码
    修改远程桌面端口号
    nginx 设置开机启动
    windows 日志清理批处理 设置到计划任务就可以每天清理日志了
    按关键字查找文件
  • 原文地址:https://www.cnblogs.com/zhangzhaowei/p/9286905.html
Copyright © 2011-2022 走看看