zoukankan      html  css  js  c++  java
  • 冒泡排序和简单的递归

    javascript中 ,冒泡排序也是很重要的一种排序方式,这种方式有固定的格式

     

    var arr1=[2,31,33,54,65,-32];
    function f1(arr){
    for(var i=0;i<arr.length;i++){
    for(var j=0;j<arr.length-i-1;j++){ // 这里用length-i-1 是因为每一次比较之后,都可以减少下次的排序次数。
    if(arr[j]<arr[j+1]){ //此条决定是按顺序还是倒序排列
    var temp=arr[j]; //temp的作用是给予一个中转点,用于临时存储值,方便arr[j]和arr[j+1]调换位置
    arr[j]=arr[j+1];
    arr[j+1]=temp;
    }
    }
    }return arr;
    }

    console.log(f1(arr1));

    简单的递归

    递归算法是重要的一种算法,所谓递归就是自己调用自己的一种方法,需要注意递归一定要有个出口,也就是一定要有一个结束递归的条件,否则的话,就会产生思想循环。

    function getNum(num){
    if(num <1){
    return 1;
    }else{
    return getNum(num-1)*num;
    }
    }

    console.log(getNum(3));

    以上这个递归就是求得num的阶层 即num!,还有更多递归的方法,需要多多练习。
    
    
        //快速排序,利用递归,比较中间值,进行快速排序
    var arr=[2,31,33,54,65,32];
    function f1(arr){
    if(arr.length<1){
    return arr;
    }
    var midIndex=Math.floor(arr.length/2); //获取中间的索引值
    var midNum=arr.splice(midIndex,1)[0]; // 获取中间的数值,取出新的数组后,第0个元素即为数字

    var right=[];
    var left=[];
    for(var i=0;i<arr.length;i++){
    if(arr[i]<midNum){
    left.push(arr[i]);
    }else{
    right.push(arr[i]);
    }
    }


    return f1(left).concat([midNum],f1(right));
    }
    console.log(f1(arr));


  • 相关阅读:
    Appium+python自动化2-环境搭建(下)【转载】
    Appium+python自动化1-环境搭建(上)【转载】
    python+requests接口自动化完整项目设计源码【转载】
    python接口自动化10-token登录【转载】
    linux_samba服务搭建
    linux_nginx反向代理
    linux_Nginx优化
    linux_mysql安装
    linux_http协议
    linux_nginx_rewrite
  • 原文地址:https://www.cnblogs.com/yuyufeng/p/5545765.html
Copyright © 2011-2022 走看看