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