javascript实现常见的算法
来源:互联网 发布:网络综合布线施工顺序 编辑:程序博客网 时间:2024/05/23 05:09
1. 快速排序
// 快排function quickSort(arr) { if (arr.length < 2) { return arr; } var pivIndex = Math.floor(arr.length/2); var piv = arr.splice(pivIndex, 1)[0]; var left = [], right = []; arr.forEach(ele => { if (ele < piv) { left.push(ele); } else { right.push(ele); } }); return quickSort(left).concat(piv, quickSort(right));}
2. 冒泡排序
// 简单粗暴的排序方法。每次从待排序数组中找到最小的元素放到首位function selectSort(arr) { var tmp; for(var i = 0; i < arr.length; i++) { for(var j = i + 1; j < arr.length; j++) { if (arr[j] < arr[i]) { // 交换位置 tmp = arr[j]; arr[j] = arr[i]; arr[i] = tmp; } } } return arr;}
3. 选择排序
function selectSort(arr) { for (var i = 0; i < arr.length - 1; i++) { var minIndex = i, min = arr[i]; for (var j = i + 1; j < arr.length; j++) { if (arr[j] < min) { // 记下最小值的索引,找到待排序数组中的最小值 min = arr[j]; minIndex = j; } } arr[minIndex] = arr[i]; arr[i] = min; } return arr;}
4. 归并排序
function _merge(left, right) { // 归并数组 var res = []; while(right.length && left.length) { if (left[0] < right[0]) { res.push(left.shift()); } else { res.push(right.shift()); } } return res.concat(left, right);}function mergeSort(arr) { if (arr.length < 2) { return arr; } var pivIndex = Math.floor(arr.length/2); return _merge(mergeSort(arr.slice(0, pivIndex)), mergeSort(arr.slice(pivIndex)));}
5. 二分查找
function halfSearch(arr, dest) { var pivIndex = Math.floor(arr.length/2); var piv = arr[pivIndex]; var length = arr.length; if (length === 0) { return null; } else if (length === 1) { return arr[0] === dest ? 0 : null; } else if(piv == dest) { return pivIndex; } else if (piv > dest) { // 小于目标值,向左查询 return halfSearch(arr.slice(0, pivIndex), dest); } else { return halfSearch(arr.slice(pivIndex+1), dest); }}
0 0
- javascript实现常见的算法
- 常见排序算法的JavaScript实现
- 常见排序算法的Javascript实现
- 几种常见排序算法的JavaScript实现
- 常见算法的实现
- 常见的算法实现
- javascript数组的常见算法
- 常见排序算法之JavaScript实现
- 常见排序算法之JavaScript实现
- 常见排序算法的实现
- 常见的排序算法实现
- 常见排序算法的实现
- 常见排序算法的实现
- 常见排序算法的实现
- 常见排序算法的实现
- 常见排序算法的实现
- 常见排序算法的实现
- 常见的排序算法实现
- HDU 1241 DFS基础题 Oil Deposits石油储藏 以初学者角度+详细注释
- python的‘’_ ‘’用法
- 关于更博的问题
- 深入浅出-话属性
- PrintWriter用法简析
- javascript实现常见的算法
- Hadoop安装
- C++——复制构造函数的形参为什么要是const引用
- 解决 eclipse 启动报错 org.eclipse.ui.ide.multiFilter
- 内存管理技术
- 如何向AOSP中添加根证书
- .net获取当前url各种属性(文件名、参数、域名 等)
- Docker方式搭建Gogs环境
- 自动生成Makefile