算法
Beijiyang999
这个作者很懒,什么都没留下…
展开
-
几种常见的排序算法总结(JavaScript 描述)
本文讨论:冒泡排序、插入排序、希尔排序、简单搜索排序、快速排序、归并排序、堆排序。冒泡排序介绍冒泡排序比较任何两个相邻的项。如果前一个比后一个大,就交换它们。元素向上移动至正确的位置,看上去就像水中上升的气泡一样。代码function bubbleSort(arr) { let length = arr.length; let flag; ...原创 2018-05-06 00:49:02 · 408 阅读 · 0 评论 -
二分搜索 / 折半查找
查找/搜索算法中,顺序搜索没什么好说的,从二分搜索 / 折半查找开始。步骤选择中间值 (low+high) / 2如果它是目标值,bingo~如果大了,从其左边的一半找如果小了,从其右边的一半找如果找不到,返回 -1 或 null 等注意: 需要数组本身有序递归实现function binaryhSearch(arr, low, high, target) ...原创 2018-05-06 13:14:55 · 298 阅读 · 0 评论 -
用 JavaScript 创建一个栈,并优化时间复杂度 (附 Python 描述)
题目描述:Design a stack that supports push, pop, top, and retrieving theminimum element in constant time.要实现的栈方法push(x) – Push element x onto stack.pop() – Removes the element on top of the stack....原创 2018-11-12 00:37:28 · 271 阅读 · 0 评论 -
ASCII码在算法题中的两个小妙用:转换字母大小写 与 转换整数字符String/Number类型(JavaScript/Python描述)
最少必要知识‘0’ 对应的ASCII码是 48‘A’ 对应的ASCII码是 65'a‘ 对应的ASCII码是 97这也是 JavaScript 中 'a' > 'A' 为 true 的原因。转换字母大小写假设做如下规定参数letter: 为单个英文字母字符;参数 mode :小写换大写为 1;大写换小写为 -1。JavaScript:const toUpperO...原创 2018-11-12 01:17:44 · 729 阅读 · 0 评论 -
JavaScript实现简单的二叉树中序遍历(class / prototype 写法)(附 Python)
一棵简单的二叉树如图。构建二叉树首先,构建如图的二叉树,并添加一个打印该树的方法 printTheTree。ES6 class 语法如下class TreeNode { constructor(value) { this.value = value this.left = null this.right = null } printTheTree()...原创 2018-11-13 22:42:31 · 353 阅读 · 0 评论 -
用 reduce 实现一行代码深拷贝对象/数组
一行实现深拷贝数组const deepCopyArr = arr => arr.reduce((acc, cur) => ( cur instanceof Array ? [...acc, deepCopyArr(cur)] : [...acc, cur]), [])一行实现深拷贝对象const deepCopyObj = obj => Object.entries...原创 2019-05-23 05:47:21 · 1222 阅读 · 0 评论