function binarySearch(arr, val, low = 0, high = arr.length) {
if (low > high)
return -1;
const mid = Math.floor((low + high) / 2);
if (arr[mid] < val) {
return binarySearch(arr, val, mid + 1, high);
} else if (arr[mid] > val) {
return binarySearch(arr, val, low, high - 1);
} else {
return mid;
}
}
算法
排序算法
快速排序
快速排序(quick sort)是公认最快的排序算法之一,有着广泛的应用。
时间复杂度
基本思想
先确定一个“支点”(pivot),将所有小于“支点”的值都放在该点的左侧,大于“支点”的值都放在该点的右侧,然后对左右两侧不断重复这个过程,直到所有排序完成。
具体做法
CODE
二路归并
将两个按值有序序列合并成一个按值有序序列
CODE
查询算法
二分查找法
递归实现
CODE
字符串操作
翻转字符串
CODE
生成指定长度随机字符串
CODE
数组操作
数组去重
indexOf方法
CODE
ES6 Set数据结构方法
CODE
简化如下:
其他
生成n到m之间的随机整数
CODE