awcing
Pingyuanyi
呜哇
展开
-
二分查找算法
例如在①情况出【1,1】的情况时,当要选择左右区间时,就需要r=mid-1,如果r=mid的话就会将一个已经判断了的边界结点加入,会造成结点更新的错误,还会增加工作量。具体就是r-1,l+1return mid 的问题。通过两个不同区间表示①[l,r]和②[l,r)来手撕二分查找,思想基本就是利用中间结点进行比较来完成寻找工作。主要思想就是:通过二分查找先找到第一个x值的结点,判断是否存在后,再去找最后一个值得结点。在这就是过程中r的值的不同:①r=mid-1 ②r=mid;2,两种区间是如何得出区分的?原创 2023-03-03 22:56:31 · 51 阅读 · 0 评论 -
最短路径问题
利用新结点k来更新已经完全连接的结点,如果更短,则可以进行更新。利用优先队列实现的堆,可以方便的得到下一个最短路径的结点。初始化dist【1】=0,dist【other】=inf。长得像Dijkstra算法但本质上是基于伸展操作的算法。应用最为广泛的算法Dijkstra可用这个算法来代替。多源最短路径求解的算法,三次循环就可得到结果。利用bakeup数组结合舒张算法进行更新结点。有限次数边的限制:结构体保存结点。贪心算法更新节点邻接表的最小值。思想就是:更新更新过的结点。原创 2023-03-03 21:24:05 · 53 阅读 · 0 评论 -
求单源最短路径算法
dijkstra算法可以用来实现无负权值的最短路求法,bellman_fort算法可用于实现有限制访问次数的最短路问题,spfa算法是最常用来求单源最短路的算法。原创 2023-02-26 08:42:53 · 178 阅读 · 2 评论 -
bellman_fort算法解决有边数限制的最短路问题
dijkstra算法建立在假设所有边都为非负权值之上,如果图中含有负权值:一是dijkstra的贪心原则,若图中含有负权值环路则算法失效因为他会选择,且她会选择看起来比较小的负权值路径导致错误出现,若为负权值,建议选择bellman_fort算法和Floyd算法解决。如果路径中存在负权值环路,由于算法贪心要选择最短的路径上的节点进行更新,每经过一次环路,距离都会减小直到变为无穷大。防止串联更新后,多出两条路径,不这样的话感觉和dijkstra算法就一样了。原创 2023-02-23 22:37:21 · 103 阅读 · 3 评论 -
高精度加法
利用倒序数组存储,方便进位和加减计算原创 2023-01-04 21:13:23 · 49 阅读 · 0 评论 -
二分法求数的范围
题目要求:对于一个序列找到其中某个数的第一个数的位置和最后一个数的位置原创 2023-01-04 19:05:33 · 56 阅读 · 0 评论 -
序列逆序数计算
逆序数原创 2023-01-02 19:40:46 · 250 阅读 · 0 评论 -
第k个数
第k个数原创 2023-01-02 19:16:58 · 179 阅读 · 0 评论 -
快速排序 归并排序
快排和归并快速记忆原创 2023-01-01 19:31:39 · 54 阅读 · 1 评论