快速排序
var arr = new Array()
for(var i = 0;i<20;i++){
arr.push(Math.floor(Math.random()*100))
}
console.log(quickSort(arr))
function quickSort(arr){
if(arr.length<=1){return arr}
var min = arr[0]//以第一个为基准
arr.shift()//删除第一个
var left = [],right = []
for(var i = 0;i<arr.length;i++){
if(arr[i]<=min){
left.push(arr[i])
}else{
right.push(arr[i])
}
}
return [].concat(arguments.callee(left),[min],arguments.callee(right))
}
冒泡排序
var arr = new Array()
for(var i = 0;i<20;i++){
arr.push(Math.floor(Math.random()*100))
}
sort(arr)
console.log(arr)
function sort(arr){
for(var i = 0;i<arr.length;i++){
for(var j = i+1;j<arr.length;j++){
if(arr[i]>=arr[j]){
var temp = arr[i]
arr[i] = arr[j]
arr[j]=temp
}
}
}
}
二分查找
var arr = new Array()
for(var i = 0;i<20;i++){
arr.push(Math.floor(Math.random()*100))
}
sort(arr)//先排序
console.log(arr)
console.log(search(arr,56))
function search(arr,num){
var min = 0,max=arr.length
while(min<=max){
var mid = Math.floor((max+min)/2); //中间值
if(arr[mid]<num){
min = mid+1;
}else if(arr[mid]>num){
max = mid-1;
}else{
return mid;
}
}
return -1; //没找到返回-1
}
网友评论