数据结构与算法
文章平均质量分 52
Rocky Ding*
全网同名Rocky Ding,AIGCmagic社区创始人,自媒体WeThinkIn主理人,AIGC算法专家,持续分享AI行业前沿资讯、干货经验以及深度思考,欢迎社招/校招/实习面试咨询。
展开
-
数据结构与算法_算法的时间复杂度和空间复杂度
时间复杂度常数阶O(1)无论代码执行了多少行,只要是没有循环等复杂结构,那这个代码的时间复杂度就都是O(1),如:int i = 1;int j = 2;++i;j++;int m = i + j;上述代码在执行的时候,它消耗的时候并不随着某个变量的增长而增长,那么无论这类代码有多长,即使有几万几十万行,都可以用O(1)来表示它的时间复杂度。线性阶O(n)例如有一个循环:for(i=1; i<=n; ++i){ int x = i; x++;}这段代码,fo原创 2020-08-05 17:43:23 · 212 阅读 · 0 评论 -
数据结构与算法_深度优先搜索(DFS)与广度优先搜索(BFS)详解
1.DFS(深度优先搜索)搜索思想在图问题中能以最直观的方式展现。深度优先搜索的步骤分为:递归下去。回溯上来。顾名思义,深度优先,则是以深度为准则,先一条路走到底,直到达到目标。这里称之为递归下去。否则既没有达到目标又无路可走了,那么则退回到上一步的状态,走其他路。这便是回溯上来。下面结合具体例子来理解。如图所示,在一个迷宫中,黑色块代表玩家所在位置,红色块代表终点,问是否有一条到终点的路径我们用深度优先搜索的方法去解这道题,由图可知,我们可以走上下左右四个方向,我们规定按照左下右上转载 2020-07-03 16:44:18 · 1409 阅读 · 0 评论 -
数据结构与算法_并查集算法趣味详解
先上具体的公式。并查集由一个整数型的数组和两个函数构成。数组pre[]记录了每个点的前导点是什么,函数find是查找,join是合并。int pre[1000];int find(int x) //查找根结点{ int r = x; while(pre[r] != r) //返回根节点r r = pre[r]; int i = x, j; while(i != r) //路径压缩 { j = pre[i]; // 在改变上级之前用临时变量转载 2020-07-01 23:16:45 · 219 阅读 · 0 评论