zoukankan      html  css  js  c++  java
  • JS复习笔记一:冒泡排序和二叉树列

    在这里逐步整理一些JS开发的知识,分享给大家:

    一:冒泡排序

    使用场景:数组中根据某个值得大小来对这个数组进行整体排序

    难度:简单

    原理:先进行循环,循环获取第一至倒数第二的范围内所有值,对当前值与下一循环的值进行判断,如果满足条件,直接在循环中进行替换,再重复调用方法本体

    案例:

            var arr = [10,1,2,5,12,3,42,20]
            function arrleft(){
                var value='';
                for(var i=0;i<arr.length-1;i++){
                    if(arr[i] < arr[i+1]){
                        value = arr[i];
                        arr[i] = arr[i+1];
                        arr[i+1] = value;
                        return arrleft();
                    }
                }
                console.log(arr);
            }
            arrleft();
    

      

    二:二叉树列

    使用场景:在规格固定的json中找到对应值

    难度:困难

    原理:通过多重解析调用的方式,获取json的所有子级

    案例:

    数据模板

            var json = {
                id:0,
                value:'0',
                left:{
                    id:1,
                    value:'a',
                    left:{
                        id:2,
                        value:'b',
                        left:{
                            id:3,
                            value:'c',
                        },
                        right:{
                            id:4,
                            value:'d',
                            left:{
                                id:5,
                                value:'e'
                            }
                        }
                    },
                    right:{
                        id:6,
                        value:'f',
                        right:{
                            id:7,
                            value:'g'
                        }
                    }
                },
                right:{
                    id:8,
                    value:'h',
                    left:{
                        id:9,
                        value:'I',
                        right:{
                            id:10,
                            value:'J',
                            left:{
                                id:11,
                                value:'K'
                            }
                        }
                    },
                    right:{
                        id:11,
                        value:'L'
                    }
                }
            }
    

      

    方法

            var i=0;
            function jsonFun(json,name){
                i++;
                if(json.id == name){
                    console.log(json);
                }else{
                    console.log(json.value);//前序遍历 
                    if(json.left){
                        jsonFun(json.left,name)
                    }
                    console.log(json.value);//中序遍历
                    if(json.right){
                        jsonFun(json.right,name)
                    }
                    console.log(json.value);//后序遍历
                }
            }
            jsonFun(json,1);
            console.log(i);//循环次数
    

      

  • 相关阅读:
    windos端zabbix_agent重启报错:cannot open service
    搭建git服务器:centos环境
    git常用命令
    Centos7下ifconfig command not found 解决办法
    如何将EPEl安装在Centos7上
    linux安装openoffice,并解决中文乱码
    docker上配置mysql主从复制
    在docker上部署mysql
    linux上创建svn服务器(centos7.3)
    微信开发基于springboot
  • 原文地址:https://www.cnblogs.com/smileZAZ/p/13679012.html
Copyright © 2011-2022 走看看