各種排序方法(冒泡,快速,插入,選擇),二分尋找

來源:互聯網
上載者:User

標籤:快速排序   冒泡排序   start   select   []   fun   else   concat   冒泡   

<script>    var list = [25,15,60,24,30,70,10,9,8];    //冒泡排序    function bubble(list) {        var len = list.length,n        for (var i =0;i<len;i++){            //i為0:可以確定最小值,i為1:確定第二小的值 ...            for (var j=i+1;j<len;j++){                if(list[i]>list[j]){                    n = list[i]                    list[i] = list[j]                    list[j] = n                }            }        }        return list    }    //選擇排序    function select(list) {        var len = list.length,n,min        for (var i =0;i<len;i++){            min = list[i]            for (var j=i+1;j<len;j++){                if(min>list[j]){                    n = list[j]                    list[j] = min                    min = n                }            }            list[i] = min        }        return list    }    //快速排序    function quick(list) {        if(list.length<=1) return list;        var left=[],right=[],point;        point = list.pop();        for (var i =0 ; i<list.length ; i++){            if(point<list[i]){                right.push(list[i])            }else {                left.push(list[i])            }        }        return quick(left).concat([point],quick(right))    }    //插入排序    function insert(list) {        var arr=[list[0]],len=list.length,key,j        for (var i = 1; i<len;i++){            key = list[i],j=i-1            while (j>=0 && key<arr[j]){                arr[j+1]= arr[j]                j--            }            arr[j+1] = key        }        return arr    }    //二分尋找    function binaryFind(list,num,start,end) {        start = start || 0,end = end || list.length;        var mid = Math.floor((start + end) / 2);        if(list[mid] == num){            return mid        }else if(list[mid]>num){            return binaryFind(list,num,start,mid)        }else {            return binaryFind(list,num,mid,end)        }    }</script>

  

各種排序方法(冒泡,快速,插入,選擇),二分尋找

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.