一.冒泡算法
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);