随笔分类 - 数据结构与算法
摘要:一、分而治之(divide and conquer,D&C) 定义:一种著名的递归式问题解决方法。D&C并非可用于解决问题的算法,而是一种解决问题的思路。 D&C的工作原理: (1) 找出简单的基线条件; (2) 确定如何缩小问题的规模,使其符合基线条件。 例子:对数组进行求和,[2, 4, 6]
阅读全文
摘要:定义 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不
阅读全文
摘要:定义 大O表示法是一种特殊的表示法,指出了算法的速度有多快。 并不以秒为单位,而是指算法运行时间随操作数的增速(随着输入的增加,其运行时间将以什么样的速度增加)。 指出了最糟情况下的运行时间。 O(log n)比O(n)快,当需要搜索的元素越多时,前者比后者快得越多。 O(n × 1/2 × n)。
阅读全文
摘要:定义 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 运行时间 O(log n) 输入 有序列表,列表项 输出 对应列表项的下标 代码 // JavaScript版本 function bi
阅读全文
摘要:一、生活中的例子: 场景:问路 递归 问题:天安门怎么走?(等待回答) A:左拐。/ 接下来怎么走不知道了,你等下,我去问B (A等待B的回答) B:右拐。/ 接下来怎么走不知道了,你等下,我去问C (B等待C的回答) C:左拐。/ 接下来怎么走不知道了,你等下,我去问D (C等待D的回答) D:直
阅读全文