各种排序方法(冒泡,快速,插入,选择),二分查找

Posted 小结巴巴吧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了各种排序方法(冒泡,快速,插入,选择),二分查找相关的知识,希望对你有一定的参考价值。

<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>

  

以上是关于各种排序方法(冒泡,快速,插入,选择),二分查找的主要内容,如果未能解决你的问题,请参考以下文章

Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序

Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序

14Java常用类(StringBuffer)排序算法(冒泡排序选择排序插入排序快速排序)查找算法(二分查找)

算法: 二分查找 冒泡 插入 选择排序

Java学习 数组,查找算法,二分查找法,冒泡排序,选择排序,插入排序

算法二分查找冒泡排序选择排序插入排序