首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
算法
订阅
不想放弃的孤独患者
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
数据结构与算法----单资源最短路径与两点间最短路径
最短路径分为单资源最短路径和两点间最短路径,其分别采用Dijkstra(迪杰斯特拉)、Floyd(弗洛伊德)算法来实现。 使用Dijkstra算法若想求出他们之间的最短路径,需要找到该顶点到其他顶点中距离最短的,然后该“最短顶点”(最短边),不停的更新到其他顶点的最短距离,然后…
数据结构与算法 - 图的最短路径Dijkstra与Floyd算法
Dijkstra(迪科斯彻)算法是基于贪心算法思想实现的。即始终保持当前迭代解为当前最优解。也可以看作一种动态规划的思想,始终获取当前拥有的条件下的最优解,当迭代中于加入了新的条件使得产生了新的最优解则更新子此问题的最优解。当迭代到最后一轮时得到的就是全局最优解。由于每一轮迭代…
算法(八):图解KNN算法
K最相邻算法(K-NearestNeighbor Classification Algorithm,KNN)是数据挖掘分类技术中最简单的方法之一,所谓K最近邻,就是K个最近的邻居的意思,说的是每个样本都可以用它最接近的K个邻居来代表。 KNN算法的核心思想是如果一个样本在特征空…
算法(七):图解动态规划
贪心算法的每一次操作都对结果产生直接影响(处理问题的范围越来越小),而动态规划则不是。贪心算法对每个子问题的解决方案都做出选择,不能回退;动态规划则会根据以前的选择结果对当前进行选择,有回退功能(比如背包问题,同一列相同容量的小背包越往后才是最优解,推翻前边的选择)。动态规划主…
算法(六):图解贪婪算法
贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。 贪婪算法所得到的结果往往不是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果。 贪婪算法并没有固定的算法解决框架,算法…
算法(五):图解贝尔曼-福特算法
它的原理是对图进行最多V-1次松弛操作,得到所有可能的最短路径。其优于迪科斯彻算法的方面是边的权值可以为负数、实现简单,缺点是时间复杂度过高,高达O(VE)。但算法可以进行若干种优化,提高了效率。 Bellman Ford算法每次对所有的边进行松弛,每次松弛都会得到一条最短路径…
算法(四):图解狄克斯特拉算法
(1) 找出“最便宜”的节点,即可在最短时间内到达的节点。 (2) 更新该节点对应的邻居节点的开销,其含义将稍后介绍。 (3) 重复这个过程,直到对图中的每个节点都这样做了。 (4) 计算最终路径。 本次在各个路径上添加所需花费的时间(当然代表公里数之类的也行),作为各个路段的…
算法(三):图解广度优先搜索算法
BFS是用于图的查找算法(要求能用图表示出问题的关联性)。 其思路为从图上一个节点出发,访问先访问其直接相连的子节点,若子节点不符合,再问其子节点的子节点,按级别顺序依次访问,直到访问到目标节点。
算法(二):分而治之
用分而治之的理念,先确认出递归的基准条件;对排序算法来说,最简单的数组就是空数组或者只包含一个元素的数组,因为这种情况下,只需要返回原数组,根本不用进行排序。所以基线条件就是:数组为空或者只包含一个元素。
算法(一):二分查找法
二分查找的基本思想是将n个元素分成大致相等的两部分,去a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x.