![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 75
lewjin
这个作者很懒,什么都没留下…
展开
-
回溯算法详解
回溯算法原创 2022-06-28 21:46:47 · 938 阅读 · 1 评论 -
算法:滑动窗口
滑动窗口(Sliding Window)最早接触滑动窗口是滑动窗口协议,滑动窗口协议(Sliding Window Protocol),属于 TCP 协议的一种应用,用于网络数据传输时的流量控制,以避免拥塞的发生。 发送方和接收方分别有一个窗口大小 w1 和 w2。窗口大小可能会根据网络流量的变化而有所不同,但是在更简单的实现中它们是固定的。窗口大小必须大于零才能进行任何操作。算法中的滑动窗口也是类似,只不过包括的情况更加广泛。实际上上面的滑动窗口在某一个时刻就是固定窗口大小的滑动窗口,随着网络流量等因原创 2022-05-26 10:31:28 · 226 阅读 · 0 评论 -
算法:排序算法
1、排序介绍排序也称排序算法(Sort Algorithm)。排序将一组数据,依指定的顺序进行排列的过程。2、排序的分类内部排序指将需要处理的所有数据都加载到**内部存储器(内存)**中进行排序外部排序数据量过大,无法全部加载到内存中,需要借助**外部存储(文件等)**进行排序常见的排序算法分类如下图:3、时间复杂度4、常见的时间复杂度(由小到大)常数阶O(1)对数阶O(log2n)线性阶O(n)线性对数阶O(nlog2n)平方阶O(n^2)立方阶O(n^3)原创 2022-03-19 22:46:57 · 798 阅读 · 0 评论 -
算法:递归-八皇后问题(回溯算法)
1、问题介绍八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯・贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。2、思路分析第一个皇后先放第一行第一列第二个皇后放在第二行第一列、然后判断是否OK,如果不OK,继续放在第二列、第三列、依次把所有列都放完,找到一个合适的位置继续第三个皇后,还是第一列、第二列……直到第8个皇后也能放在一个不冲突的位置,算是找到了一个原创 2022-03-11 20:27:03 · 147 阅读 · 0 评论 -
算法:动态规划算法的最佳实践-背包问题
1、背包问题有一个背包,容量为4磅,现有如下物品要求达到的目标为装入的背包的总价值最大并且重量不超出要求装入的物品不能重复2、思路分析背包问题主要是指一个给定容量的背包、若干具有一定价值和重量的物品,如何选择物品放入背包使物品的价值最大。其中又分01背包和完全背包(完全背包指的是:每种物品都有无限件可用)这里的问题属于01背包,即每个物品最多放一个。而无限背包可以转化为01背包。算法的主要思想,利用动态规划来解决。每次遍历到的第ⅰ个物品,根据w和vi来确定是否需要将该物品放入背包中。即原创 2022-03-11 10:27:51 · 526 阅读 · 0 评论 -
算法:动态规划-斐波那契数列
简介斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……数学方式表示如下:对于问题的求解代码想必大家早已耳熟能详,但这里只是借助斐波那契数列作为学习动态规划的例子。通过例子了解动态规划的一些特征。动态规划:先看下百度给的定义:动态规划(dynamic programming)是运筹学的一个分支,是转载 2022-02-21 21:22:04 · 3634 阅读 · 0 评论 -
常见的排序算法(面试经常碰到)
1.直接插入排序直接插入排序(Straight Insertion Sort) 是一种最简单的排序方法。它的基本思想是每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。代码实现:/** * * @param array */ public static void insertSort(int[] array){ int tmp = 0; for (int i = 1;原创 2021-05-17 16:54:00 · 160 阅读 · 1 评论