javascript简单算法
来源:互联网 发布:一根网线接电话和网络 编辑:程序博客网 时间:2024/06/11 05:35
分享请标明来自:https://www.css3.io/javascript-algorithm.html
折半查找算法
var data = [3, 12];var goal = 3;function bSearch(goal, array, indexStart, indexEnd) { if (indexStart > indexEnd) { return -1; } // 这里是关键, 不能(indexEnd+indexStart)/2 有溢出风险 var mid = indexStart + Math.floor((indexEnd - indexStart)/2, 10); if (array[mid] === goal) { return mid; } if (goal > array[mid]) { // indexStart = mid+1 很重要, // 不能是indexStart = mid, // 用于开头 indexStart > indexEnd 跳出判断。 indexStart = mid + 1; } else if (array[mid] > goal) { // mid-1 同上 indexEnd = mid - 1; } return bSearch(goal, array, indexStart, indexEnd);}console.log(bSearch(goal, data, 0, data.length - 1));
快速排序
Array.prototype.quickSort = function () { var arr = this || []; if (arr.length <= 1) { return arr; } var goalIndex = Math.floor(arr.length / 2); var goal = arr[goalIndex]; var leftArr = []; var rightArr = []; arr.forEach(function(val, index){ if(goalIndex === index) { return; } if (val > goal) { rightArr.push(val); } else { leftArr.push(val); } }); return leftArr.quickSort().concat(goal, rightArr.quickSort());}var arr = [5, 2, 3, 4, 5];console.log(arr.quickSort());
按多健值排序
var by = function () { var args = arguments || []; return function (a, b) { var key = ''; for (var i = 0; i < args.length; i ++) { key = args[i]; if(a[key] === b[key]) { //最后一个key如果还等,着视为相等 if (i === args.length - 1) { return 0; } continue; } return a[key] < b[key] ? -1 : 1; } }}var obj = [ {id: 3, name: 'b'}, {id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 1, name: 'c'}]// 先按name排序,name相等再按id排序console.log(obj.sort(by('name', 'id')));
0 0
- javascript简单算法
- javascript数据结构与算法-简单算法
- 一个简单的JavaScript日期计算算法
- JavaScript 实现简单的神经网络算法
- LRU算法的简单JavaScript实现
- 基于JavaScript实现的简单的二元神经网络算法
- javascript 算法
- JavaScript算法
- javascript算法
- javascript算法
- 【JavaScript算法】javascript常用算法
- JavaScript算法-排序算法
- JavaScript算法-排序算法
- 简单算法
- 简单算法
- 简单算法
- 简单算法
- 简单算法
- 面试体会
- poi读写Excel文件,兼容新旧版本的简单例子
- 多态的理解(父类引用指向子类对象)
- C++作业3
- 1001. A+B Format (20)
- javascript简单算法
- 政府采购的主体
- 2017-03-23 中青宝 预计会低开
- c#学习笔记_结构体
- RabbitMQ基础内容详细介绍
- NGINX 反向代理
- Redis Studio 详细介绍
- easyui 动态生成datagrid
- 政府采购的组织形式