随笔分类 - 算法
摘要:1、菲波那切数列 在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。形如: 数学上的计算公式是: 读书时候还有利用线性方程推算过这个公式,不
阅读全文
摘要:一、二分查找和普通查找的优缺点 普通查找:原理简单,不需要数组有序;当元素个数很大时候,效率较低; 二分查找,需要数组有序排列,但是查找效率高; 二、二分查找实现 //查找指定元素在循序数组中的索引 三、快速排序
阅读全文
摘要:前言 队列和栈很像,只是用了不同的原则。队列是遵循先进先出(FIFO)原则的一组有序的的项,队列在尾部添加新元素,从顶部移除元素。最新添加的元素必须必须排队在队列的,末尾。可以想象食堂排队买饭的样子。 一、创建队列 1、创建一种数据结构来保存队列里面的数据,这里选择数组 2、声明一些栈的方法 enq
阅读全文
摘要:前言 栈是一种遵循后进先出(LIFO)原则的有序集合,新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另外一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。可以想象桌上的一叠书,或者厨房里的堆放的盘子。 一、栈的创建 可以创建一个类来表示栈 二、栈的应用 十进制转二进制 十进制转成其他进制
阅读全文
摘要:一、定义 深度优先就是自上而下的遍历搜索,广度优先则是逐层遍历; 深度优先: 广度优先: 区别: 深度优先不需要记住所有的节点, 所以占用空间小, 而广度优先需要先记录所有的节点占用空间大 深度优先有回溯的操作(没有路走了需要回头)所以相对而言时间会长一点 深度优先采用的是堆栈的形式, 即先进后出
阅读全文
摘要:如何快速查找一个字符串中出现最多的字符,并统计出现的次数? 可以使用hash数组,也就是关联数组实现快速查找功能。
阅读全文
摘要:在leetcode上看到一个题,代码实现排列组合的。 记得大学上课时候,就用c写过,现在用js试试,顺便看看耗时。 先看看3的阶乘: 如果是5的阶乘呢?
阅读全文
摘要:在函数式编程中,经常会利用一些‘缓存’的技巧,也就是常说的记忆功能。这里需要抢到,记忆只是一种编程技巧,本质上是牺牲算法的空间度换区更优的时间复杂度,以提高程序的执行效率。 当一个函数,可能反复计算相同的数据时,为了避免重复地计算,我们可以考虑利用闭包实现函数的‘记忆’功能,以降低时间复杂度。好了,
阅读全文

浙公网安备 33010602011771号