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]//以第一個(gè)為基準(zhǔn)
    arr.shift()//刪除第一個(gè)
    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;   //沒(méi)找到返回-1
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文總結(jié)常見(jiàn)的算法,并用JavaScript實(shí)現(xiàn) Array對(duì)象的sort()函數(shù)常用比較函數(shù)compareFun...
    jasonhsu9閱讀 145評(píng)論 0 1
  • 什么是隊(duì)列 隊(duì)列是一種列表,不同的是隊(duì)列只能在隊(duì)尾插入元素,在隊(duì)首刪除元素。隊(duì)列用于存儲(chǔ)按 順序排列的數(shù)據(jù),先進(jìn)先...
    打鐵大師閱讀 730評(píng)論 0 1
  • 1、區(qū)間求值算法(Sum All Numbers in a Range) 我們會(huì)傳遞給你一個(gè)包含兩個(gè)數(shù)字的數(shù)組。返...
    Iris_mao閱讀 1,605評(píng)論 0 2
  • 1、翻轉(zhuǎn)字符串(Reverse a String) 翻轉(zhuǎn)字符串先把字符串轉(zhuǎn)化成數(shù)組,再借助數(shù)組的reverse方法...
    Iris_mao閱讀 723評(píng)論 1 3
  • 如果,你想挽著心愛(ài)的人踏著紅葉緩緩漫步;如果,你想尋一個(gè)像夢(mèng)一樣的地方隨意徜徉;如果,你想找一個(gè)幽靜的去...
    伊清歡閱讀 639評(píng)論 3 4

友情鏈接更多精彩內(nèi)容