算法

一.冒泡算法

var bubbleSort = [9,2,3,8,7,5,4,6,1];         
var a;
for(var i=0;i<bubbleSort.length;i++){
    for(var j=i+1;j<bubbleSort.length;j++){
        if(bubbleSort[i]>bubbleSort[j]){
            a=bubbleSort[i];
            bubbleSort[i]=bubbleSort[j];
            bubbleSort[j]=a;
        }
    }
}

二. 快速排序

var arr= [9,2,3,8,7,5,4,6,1];         
var a;
for(var i=1;i<arr.length;i++){
    for(var j=i-1;j>=0 && arr[j]>arr[j-1];j--){
        arr[i]=arr[i]^arr[j]
        arr[j]=arr[i]^arr[j]
        arr[i]=arr[i]^arr[j]
    }
}   

三. arr[L,...,R]上求最大值

let arr = [0,5,7,2,9,4,32,3,61,4];
   let process = function (arr, L, R) {
   if(L === R){
       return arr[L];
   }
   let mid = L + ((R - L) >> 1);      // 这样写可以防止溢出,>>右移1位相当于/2,位运算相对快一些
   let leftMax = process(arr, L, mid);
       let rightMax = process(arr, mid + 1, R);
       return Math.max(leftMax, rightMax)
   }
   let max = process(arr, 0, arr.length - 1);

  

原文地址:https://www.cnblogs.com/tyusBlog/p/15716957.html