摘要: 阅读全文
posted @ 2023-06-05 00:32 passing-dragon 阅读(18) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-11-24 15:44 passing-dragon 阅读(11) 评论(0) 推荐(0)
摘要: 1.贪心的经典问题 (1)贪心算法我们在刚开始学习的时候遇到的往往是就一间房间,要求安排的活动数最多,这个我们已经非常熟悉了,只需要将活动按结束时间排好,然后将活动安排一下即可。 (2)证明正确性(AC题目时无需证明,根据感觉来即可): 2.另一个贪心问题 题目: 假设要用很多个教室对一组活动进行调 阅读全文
posted @ 2021-12-10 18:56 passing-dragon 阅读(272) 评论(0) 推荐(0)
摘要: 由于考试算法中用到贪心时需要先证明其正确性才能使用,所以本人学习了一下贪心算法的证明方法并作此笔记。 首先,在网上找到的贪心策略证明有: 考察一个问题的最优解,证明可修改该最优解,使得其从贪心选择开始,然后用数学归纳法证明每一步都可以通过贪心选择得到最优解 1,假定首选元素不是贪心选择所要的元素,证 阅读全文
posted @ 2021-12-10 18:43 passing-dragon 阅读(2128) 评论(0) 推荐(0)
摘要: 迪杰斯特拉算法 1.迪杰斯特拉算法是求原点到各个点的最短距离,用的是步步贪心的方法所以不能解决带负权图,这个到后边说 2.迪杰斯特拉算法的实现 要用到的数组 :(1)graph[ ] [ ]用来存图 (2)flag[ ]用来记录此点是否已经被加入 (3)path[ i ]用来表示从原点到达 i 节点 阅读全文
posted @ 2021-12-01 21:06 passing-dragon 阅读(334) 评论(0) 推荐(0)
摘要: 今天在做题时遇到了一个问题问比较排序的时间复杂度把我问蒙了,去搜索了一下原来比较排序时一大类排序的叫法 分类如下 1.比较排序 比较排序就是我们刚开始接触时常见的那些排序常见如下: 冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等 时间复杂度为 nlogn--n*n 2.另一种是非比较排序 阅读全文
posted @ 2021-11-28 17:44 passing-dragon 阅读(212) 评论(0) 推荐(0)
摘要: 求一个图中各个点之间的距离,弗洛伊德算法无疑是非常简单的,但是以前只会求每个点之间的dist,(最短距离),不会求最短距离的路径怎么走,没有理解path最后怎么输出 先看算法核心代码 初始化注意: 1.path[i][j] = j 2.dist对角线为零 核心代码: for(int i = 0; i 阅读全文
posted @ 2021-11-26 18:33 passing-dragon 阅读(758) 评论(0) 推荐(0)