排序
let arr = [2,5,1,3,4]
function add(arr,pos){
if(pos < 0) return 0
return arr[pos] + add(arr,pos-1)
}
let len = arr.length
return add(arr,len - 1,0)
查找
二分查找
function binarySearch(arr, target) {
//首先确定首、尾下标
var low = 0 , high = arr.length - 1;
while (low <= high) { // !等号!只要查找区间起始点和结束点中间还有值(要包括两值相同的情况),我们就继续进行查找
var mid = (low + high) / //确定中间值下标
if (target== arr[mid]) { //如果target等于中间值 返回
return mid
} else if (target< arr[mid]) { //如果target小于中间值 找左边
high = mid - 1;
} else { //否则 如果target小于中间值 找右边
low = mid + 1
}
}
return -1//查找完都没有查找到,就退出
}
树
前/中/后序遍历
function dfs(rt){
if (!rt) return null
console.log(rt.val) //前序遍历
dfs(rt.left)
//console.log(rt.val) //中序遍历
dfs(rt.right)
//console.log(rt.val) //后序遍历
}
return dfs(root)
动态规划
分治