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);//循环次数