zoukankan      html  css  js  c++  java
  • 常用算法 (JS实现)

    全排序列

    function swap(array,a,b){
        var m=array[a];
            array[a]=array[b];
            array[b]=m;
    }
    function full_sort(array,from,to){
        if(from==to){
            console.log(array);
            return;
        }else{
            for(var i=from;i<to;i++){
                swap(array,from,i);
                full_sort(array,from+1,to);
                swap(array,from,i);
            }
        }
    }

    快速排序

    function quicksort(array) {
        if (array.length <= 1) return array;
        var pivot = array[0];
        var left = [];
        var right = [];
        for (var i = 1; i < array.length; i++) {
            if (array[i] > pivot) {
                right.push(array[i])
            } else {
                left.push(array[i]);
            }
        }
        return quicksort(left).concat([pivot], quicksort(right));
    }
     
     function swap(array,m,n) {
            var x=array[m];
                array[m]=array[n];
                array[n]=x;
     }
    function partial(array,start,end){
            var m=start;
            var n=end;
            var mid=Math.floor((start+end)/2);
            console.log(mid)
            var p=array[mid];
            while(m<=n){
                while(array[m]<p){
                    m++
                }
                while(array[n]>p){
                    n--
                }
                if(m<=n){
                        swap(array,m,n);
                        m++;
                        n--;
                }
            }
            return m
    }
    function qsort(array,start,end){
            if(array.length>1){
                    var index=partial(array,start,end) 
                    if(start<index-1){
                        qsort(array,start,index-1)
                    }
                    if(index<end){
                        qsort(array,index,end)
                    }
            }
            return array;
    }
    var a=[20,10,5,6,7,40];
    qsort(a,0,5)
  • 相关阅读:
    iOS-汽车品牌app
    iOS-英雄联盟人物展示
    工作与梦想中的工作:给计算机专业学生的建议
    c++ 宏的使用
    c++ 预处理的应用
    iOS-UItableView 多组表格
    ios-代理模式 协议小结
    c++有符号变量和无符号变量相加的结果
    ios-图片轮播器
    ios-倒计时
  • 原文地址:https://www.cnblogs.com/dubaokun/p/5239450.html
Copyright © 2011-2022 走看看