当前位置: 首页 > wzjs >正文

哪有免费的简历模板关键词seo排名优化推荐

哪有免费的简历模板,关键词seo排名优化推荐,wordpress 耗资源,营销网站建设广西拓扑排序 试想这样一个问题,我们做事情事情本身之间有先决条件。例如我们希望能在这些事情之间找到不破坏依赖关系的前提下对整个结果排序。这被称为拓扑排序。假设下面的例子,每个节点称为一个课程。 #mermaid-svg-klxvcbfYdUg3GXYP {font-family:&quo…

拓扑排序

试想这样一个问题,我们做事情事情本身之间有先决条件。例如我们希望能在这些事情之间找到不破坏依赖关系的前提下对整个结果排序。这被称为拓扑排序。假设下面的例子,每个节点称为一个课程。

C1
C3
C8
C4
C2
C5
C6
C9
C7

我们学习C3则需要先学C2和C1。也就是说我们应该先学没有任何依赖的课程(没有被指向的节点)。于是我们定义节点的入度表示有多少指向其的节点。例如C3的入度为2,因为有两个节点C1和C2指向它
C3课程需要C1和C2先修课程,如果C1当前已经完成,此时想上C3则需要完成剩下的课程C2。当然我们也可以先完成C2再完成C1,也就是说拓扑排序的结果不一定是唯一的。我们上了某门课则需要将次课程指向的课程入度-1(或者也可以说将指向的边删除C1–>C3的边删除)。于是我们可以简单地总结拓扑排序

  1. 找到图中入度为0的点加入结果
  2. 将节点关联的其它节点的入度-1
  3. 在剩下节点中找到入度为0的节点重复操作1,2直到最后所有的节点入度都为0为止。

算法分析

根据上面的算法我们需要知道:

  1. 首先知道每个节点的入度值。
  2. 根据节点找到其指向的节点。
  3. 快速找到入度为0的节点。

算法流程分析

入度表:

C1C2C3C4C5C6C7C8C9
002212211

为了能顺序访问,我们将入度为0的节点放入队列。算法执行:

  1. 将入度为0的C1、C2加入队列
  2. 将队列头的C1取出,根据C1找到其相连的C3和C8节点,然后将C3和C8的入度-1。此时图如下:
C3
C4
C2
C5
C6
C8
C9
C7
C1C2C3C4C5C6C7C8C9
001212201

这时我们发现C8入度为0,加入队列。此时队列中元素为[C2,C8]
3. C2出队列,将C3和C5的入度-1。

C3
C4
C5
C6
C8
C9
C7
C1C2C3C4C5C6C7C8C9
000202201

此时C3和C5已经入度为0,入队列,此时队列中元素[C8,C3,C5]
4. C8出队列,然后C9入度-1

C3
C4
C5
C6
C9
C7
C1C2C3C4C5C6C7C8C9
000202200

此时C9入度为0,将C9加入队列。此时队列中[C3,C5,C9]
5. C3出队列,C4入度-1

C5
C4
C6
C9
C7
C1C2C3C4C5C6C7C8C9
000102200

此时没有节点入度为0,则不需加入任何节点到队列中。队列中元素[C5,C9]
6. C5出队列,C4和C6入度-1

C4
C6
C9
C7
C1C2C3C4C5C6C7C8C9
000001200

此时C4入度为0,将C4加入队列。队列中元素[C9,C4]
7. C9出队列,C7入度-1。

C4
C6
C7
C1C2C3C4C5C6C7C8C9
000001100

此时队列中元素为C4
8. C4出队列,C6、C7入度-1。

C7
C6
C1C2C3C4C5C6C7C8C9
000000000

此时C6和C7入度都为0,将其加入队列,此时队列元素[C6,C7]
9.最后C6、C7出队列。队列为空,则可以拓扑排序。

什么样的情况无法拓扑排序?

C4
C6
C7

此时没有节点入度为0。核心在于C4课程依赖于C7,而C7同样依赖于C4。

实践

def canFinish(numCourses: int, prerequisites: List[List[int]]) -> bool:node_link_nodes = {}node_indgree = {}indegree = set()for node in prerequisites:if node[1] not in node_indgree:node_indgree[node[1]] = 1else:node_indgree[node[1]] += 1# 入度不为0的节点加入indegreeindegree.add(node[1])if node[0] not in node_link_nodes:node_link_nodes[node[0]] = [node[1]]else:node_link_nodes[node[0]].append(node[1])nodes = deque(set(range(numCourses)) - indegree)out = []while len(nodes) > 0:no_indegree = nodes.popleft()out.append(no_indegree)if no_indegree in node_link_nodes:for node in node_link_nodes[no_indegree]:node_indgree[node] -= 1if node_indgree[node] == 0:nodes.append(node)return len(out) == numCoursesdef findOrder(numCourses: int, prerequisites: List[List[int]]) -> List[int]:indegree = [0] * numCourses# 节点和其连接的相邻节点adj = {}res = []for edge in prerequisites:indegree[edge[0]] += 1for x, y in prerequisites:if y not in adj:adj[y] = []adj[y].append(x)visited = [False for i in range(numCourses)]node_indeies = []for node_index, value in enumerate(indegree):if value == 0 and not visited[node_index]:node_indeies.append(node_index)visited[node_index] = Truewhile len(node_indeies) > 0:joined_node = node_indeies.pop(0)res.append(joined_node)if joined_node in adj:for related_index in adj[joined_node]:indegree[related_index] -= 1if indegree[related_index] == 0 and not visited[related_index]:node_indeies.append(related_index)visited[related_index] = Trueif joined_node in adj:adj.pop(joined_node)return res if len(res) == numCourses else []
http://www.dtcms.com/wzjs/13633.html

相关文章:

  • 现在个人网站怎么备案泉州关键词优化排名
  • 青岛国家高新区建设局网站湖南网络营销外包
  • 惠州网站制作公司知名网站排名
  • 东海网站建设正规的培训机构有哪些
  • 建设网站平台需要的设备网络项目怎么推广
  • 网站源码生成器福州百度推广排名
  • 网站建设阿华seo西安网络推广
  • 合肥微信网站建设销售平台有哪些
  • 做汽车特卖会的网站引擎优化搜索
  • 网站备案信息真实核验单 单位设计公司排名
  • 泰安网站开发公司百度2019旧版本下载
  • 九号线香网站建设文件关键词搜索工具
  • 手机测评做视频网站网络营销策略有哪五种
  • wordpress 防止采集廊坊seo外包
  • 哈尔滨网站建设制作哪家便宜北京seo招聘网
  • 合肥网站建设设计公司哪家好点击宝seo
  • 长沙网络营销网站建设深圳关键词seo
  • 网站视频下载windowsmac日本官网入口
  • 网站建设联基本seo
  • 如何做网上销售网站北京做网站推广
  • wordpress 文章的各种调用seo网站自动推广
  • 35开始学网站开发友情链接软件
  • 北海做网站网站建设哪家好seo赚钱培训
  • wordpress新建文章页面济南seo优化外包
  • python 做视频网站百度官网电话客服24小时
  • 营销型网站盈利方案常州百度推广代理公司
  • 四川省工程建设管理协会网站搜索引擎论文3000字
  • 做网站的成本是什么今天发生了什么重大新闻
  • 合肥学网站设计潍坊seo按天收费
  • 建设网站如何加入搜索免费网络推广软件