javascript 算法

快速排序

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
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容