![](https://img-blog.csdnimg.cn/20210112100912224.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 60
这种方法或许不是最优的,但是是最有效的
汀风说后端
做一个知识分享者
展开
-
冒泡排序算法
冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序对 n 个项目需要 O(n2) 的比较次数,且可以原地排序。尽管这个算法是最简单了解和实现的排序算法之一,但它对于包含大量的元素的数列排序是很没有效率的。 冒泡排序算法的运作如下: 比较相邻的原创 2021-01-15 15:53:30 · 263 阅读 · 1 评论 -
插入排序算法
插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到 O(1) 的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序原创 2021-01-15 15:51:33 · 144 阅读 · 0 评论 -
选择排序算法
故事背景 假如本次考试,本学习有100个学生,对于每个学生我们记录了他的分数,现在你需要将同学们的分数,按照从高到低排名 那么该如何做呢,一种办法是,遍历整个数据,然后吧分数最高的加入到一个新的列表中 依次这样做,我们可以得到一个有序列表 从计算机的角度看待一个这个问题 O(n)时间意味着查看列表中的每个元素一次。例如,对学生列表进行简单查找时,意味着每个学生都要查看一次 要找出分数最高的学生,必须检查列表中的每个元素。正如你刚才看到的,这需要的时间为O(n)。因此对于这种.原创 2021-01-14 11:26:49 · 469 阅读 · 0 评论 -
算法基础知识
算法就是一种高效解决问题的技巧或者方法 在接下来的学习中,如果你要能看的懂算法,有一些知识点,你需要提前了解到 1、一些代数知识 1>、先来一个小案例,给定函数 f(x) = x * 2 。那么 f(5) 的值是多少呢?如果你的答案是10、那就ok f(x)中的 x 代表自变量, f 代表因变量 x = 5 那么计算结果:x*2 = 5*2 = 10 2>、对数 log ,的值是多少呢?如果你知道是 4、那就ok 在数学中,对数是对求幂的逆运算,正如除法是乘法的倒数,反之亦然 .原创 2021-01-13 18:49:38 · 307 阅读 · 2 评论 -
redis 基于 漏斗算法 实现对 api 的限流
漏斗算法 漏桶算法的原理: 漏桶有一定的容量,给漏桶注水,当单位时间内注入水量大于流出水量,漏桶内积累的水就会越来越多,直到溢出。 就好比大批量请求访问nginx相当于注水,nginx根据配置按照固定速率处理请求当做排水。 漏桶容量就好比配置给nginx的队列长度。当漏桶发生溢出,则禁止请求进入,直接返回错误 php实现一个简单的漏斗算法 /** * [leaky php实现漏桶算法] * @param [type] $contain [int原创 2021-01-12 10:25:59 · 485 阅读 · 0 评论