JS复习笔记一:冒泡排序和二叉树列

  • A+
所属分类:Web前端
摘要

在这里逐步整理一些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);//循环次数