算法入门篇
文章平均质量分 60
哆啦刘小洋
努力思考
展开
-
模板题---2.1(图论)
Bellman_ford算法会遍历所有的边,但是有很多的边遍历了其实没有什么意义,我们只用遍历那些到源点距离变小的点所连接的边即可,只有当一个点的前驱结点更新了,该节点才会得到更新;,决定是最大优先队列还是最小优先队列,默认的less为最大优先队列,实现方式是最大堆,greater为最小优先队列,实现方式是最小堆,结构都是二叉树。核心:对所有的点进行“对邻接边尝试松弛”即dist[to]=min(dist[to],dist[from]+w[from][to]);大根堆就是根节点最大,小根堆就是根节点最小。原创 2022-12-23 15:10:46 · 331 阅读 · 0 评论 -
爬楼梯(小数据方式+大数据方式)
先给一个链接。原创 2022-11-09 10:05:28 · 224 阅读 · 0 评论 -
2的n次幂快速求法
从7的最低位开始,如果当前位为1,那么乘上当前位对应的二进制转10进制值。再一个,如果不用高精度,那么对答案取模。比如求2的7次方,7转换为二进制就是。原创 2022-10-29 15:00:56 · 1431 阅读 · 0 评论 -
算法训练营----队列
那么我认为循环队列最难的问题就是求队列中元素的个数,当然,用一个for循环遍历队列肯定可以,但是这样就很慢,可以通过数学的方法来求得是最好的。使用front和rear的相对位置,front和rear由于进行了求余处理,所以他们的值的范围都是[0,Maxsize-1]当然会出现一个问题,因为front和rear是不停移动的,所以每次+1的话可能会造成数组越界。那么可以用求余的方法来做.入队操作如图所示,先将元素放入Q.rear指向的空间,然后Q.rear向后移动一个单位.(1)队列的数据结构。原创 2022-10-10 18:57:09 · 256 阅读 · 0 评论 -
算法训练营----顺序栈,链栈
栈和线性表的区别在于操作的限制,。原创 2022-10-08 21:46:09 · 260 阅读 · 0 评论 -
算法入门篇-STL之Vector,Stack,Queue,list
size():容器内的元素个数,无符号整型.empty():判断容器是否为空,返回一个bool值.front():返回容器第一个元素.back():返回容器最后一个元素.begin():指向容器第一个元素的指针。.end():指向容器最后一个元素的下一个位置的指针.swap(b):交换两个容器的内容::iterator:迭代器。原创 2022-09-14 20:59:29 · 528 阅读 · 1 评论 -
算法入门篇-分治法,快速排序
那么最终把所有的子序列排序完后。会到达这样一种状态:对于数列任意的一个元素,所有比基准元素小的元素都在它左边,所有比基准元素大的都在他右边。那么这就说明这个数列是有序的。由于每一次排序结束的时候,都会使基准元素(选取的元素)处于一种状态:比基准元素小(等于)的都在它左边,比基准元素大(相等)的都在它右边。也许会有人问,这样怎么能保证最后的数列有序?快速排序的基本思想是基于分治策略。原创 2022-09-10 22:54:49 · 143 阅读 · 0 评论