数学与算法
掌握算法思维
cookcyq
Thinking | Freedom | Opinions are my own.
展开
-
算法 & 理解冒泡、选择排序
轻松理解冒泡、选择排序原创 2022-06-01 17:21:17 · 59 阅读 · 0 评论 -
算法 & 递归优化之尾递归
1. 什么是尾递归尾递归是递归 衍生出来的一个优化手段名词,它的作用就是减少优化内存空间,我们都知道普通的递归每一层都依赖上一层的栈的信息,当这种依赖关系数量增大时,维护的成本可想而知,有了尾递归之后,我们可以将这种依赖性化为 0,从而提升空间上的优化2. 尾递归思想尾递归的核心思想是:将每一层计算的结果以参数传递出去,最后返回这个参数即可3. 案例分析3.1 简单理解function f(n) { if (n == 1) return 5000 return f(n-1)}f(4)原创 2022-05-25 19:56:15 · 301 阅读 · 0 评论 -
算法 & 理解递归
1、什么是递归函数调用本身就叫递归,这没啥好说的,真正要理解的是‘递 和 ‘归’ 这字的含义,在理解这两个字的概念前,我们首先要清楚的是函数调用中会存在一个调用栈的玩意,它就跟数组一样是个容器,遵循着进栈 与 出栈,这个进与出的消除循序是按照先进后出,递归对应着就是这种关系,递就是进,归就是出,栗如 f1 函数里头调用其它函数时,f1 函数先进,等到最后才出,看例子function f3() {}function f2() { f3() }function f1() { f2() }f1()原创 2022-05-23 09:57:15 · 130 阅读 · 0 评论 -
算法 & 理解快速排序
1. 什么快速排序快速排序是冒泡排序的升级版,排序本质是循环,快速循环,指的就是循环很快,那这个快速排序自然就是减少循环次数来提升更快的循环了。2. 快速排序思想快速排序主要的核心思想就是:选基点、后排序、再分治 最后递归重复2.1 选基点arr = [10, 2, 9, 12, 8, 20, 30, 4]在 arr 数组中选择任意一个数字作为左右两边比较的基点,比如我们选择 102.2 后排序将小于10的放左边、大于10的放右边arr = [2, 9, 8, 4, 10, 20,原创 2022-05-21 11:08:33 · 118 阅读 · 0 评论