- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我见过的所有 Dijkstra 算法的实现都没有递归函数,但我也读到,根据定义,动态规划是一种具有递归函数和“内存”已计算事物的算法。
那么带循环的 Dijkstra 算法是否符合动态规划的条件?
或者为了符合动态算法的条件,我必须将循环更改为递归函数。
最佳答案
All implementation of Dijkstra's algorithms I have seen do not have a recursive function
递归给了我们一个堆栈。但是我们这里不需要堆栈。我们需要一个优先队列。实现 Dijkstra 算法的有效方法是使用 heap (c++ 中的 STL priority_queue)。
but I have also read that by definition dynamic programming is an algorithm with a recursive function and "memory" of things already calculated.
动态编程不需要以递归方式编写,尽管大多数人更喜欢以递归方式编写。
例如:
int dp[MAX]={-1,-1,...};
find fibonacci(int nthTerm){
if(n <= 1) return n;
if(dp[n]!=-1) return dp[n];
return dp[n]=fibonacci(n-1)+fibonacci(n-2);
}
是DP的递归实现
和
int dp[MAX]={0,1,-1,-1,-1,..};
int lastFound = 1;
int fibonacci(int nthTerm){
for(int i=lastFound+1;i<=n;i++){
dp[i]=dp[i-1]+dp[i-2];
}
return dp[n];
}
是一种迭代的方式来编写它以节省堆栈内存。
记住任何算法
1) 不重新计算已经找到的结果并且
2)利用已有的结果寻找需要的结果
可以称为DP。
So is Dijkstra's algorithm with a loop qualified as dynamic programming?
Dijkstra 是 DP!
Or in order to qualify as dynamic algorithm I have to change a loop into a recursive function.
没有
关于algorithm - 是Dijkstra算法,动态规划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24140623/
我正在创建我的第一个 WAR 文件。我一直在试验 ant buildfile 语法,我的 buildfile 的第一部分从我的 Eclipse 项目中获取内容并将其放入 /dist 文件夹中,然后将其
我是一名学习 SQL 和 PHP 的学生,我接到了一项任务,要使用 PHP 和 mySQLi 创建学生反馈表,我真的一直在思考如何为项目设计数据库! 我正在创建一个系统,用户可以在其中登录网页,如果用
这个问题在这里已经有了答案: Is it possbile to test for expected errors when the testee exits with failure using
我目前正在设计和开发一个 Web 应用程序,该应用程序有可能快速增长。我将提供一些一般信息,然后继续我的问题。我会说我是一名中级网络程序员。 以下是一些规范:MySQL - 数据库后端PHP - 用于
我不知何故无法在我的日志解析器应用程序中实现报告功能。 这是我目前所做的: 我正在编写一个应用程序,它读取日志文件并在字符串中搜索可以在用户配置文件中定义的多个正则表达式。对于从配置中解析的每个所谓的
我有兴趣学习如何在多开发团队场景中设计/规划 Web 应用程序开发。 假设“项目经理/负责人”的角色: 成功的 Web 应用程序开发需要哪些“文档”? 需要什么 UML 图,需要什么程度? 在设计/计
table a (t_a): id name last first email state country 0 sklass klass steve
我们建立了一个广泛使用 JQuery UI 的 AJAX 网站。我们有 30 多个自制的 JQuery UI 小部件(动态加载)。我们到处都使用 JQuery native 小部件:对话框、 slid
我是一名优秀的程序员,十分优秀!