算法和程序
文章平均质量分 75
iwantnon
图形程序员,游戏开发者。
展开
-
递归的栈模拟
数据结构:struct PROC//进程结构{ para; //状态参数(可有多个) bs;//接收返回值 inoutp;//进出位置};算法:初进程入栈;while(栈非空){ 继续执行栈顶进程; if(遇洞口) { 记下入口位置; 构造新进程并入栈; }else原创 2009-03-03 22:32:00 · 3304 阅读 · 0 评论 -
取球游戏
问题出自:http://topic.csdn.net/u/20090518/21/8b96f19a-af92-4eb8-8021-2977c29f27d2.html#replyachorhttp://topic.csdn.net/u/20090524/15/485d92e2-759e-496c-8725-fab7862ab5d2.html原创 2009-07-18 02:01:00 · 1720 阅读 · 0 评论 -
单机调度问题
来自:http://topic.csdn.net/u/20090504/21/1992403a-69b0-4a97-ada5-4ef8153f2078.html?seed=1381913772--假设有一台机器,以及在此机器上处理的n个作业a1,a2,...,an的集合。处理作业aj所需的时间为tj,作业aj的完成带来的收益为pj,作业aj完成的最后期限为dj。机器在一个时刻只能处理一原创 2009-07-23 12:54:00 · 4900 阅读 · 2 评论 -
动态规划的一般描述
一,粗犷的动态规划算法:st加入listfor z=1 to n //推进n次,n为dag顶点数{ for list中每个节点v { for 每个可用策略dec { 计算v经dec转移得到的节点linv if linv超出状态空间,continue;原创 2009-07-07 20:53:00 · 2338 阅读 · 0 评论 -
A*算法
一,伪代码://制作起点st填充st.loc;//状态坐标计算st.costed(或wined);//已支付代价(或收益)计算st.willcost(或willwin);//预计还需支付的代价(或收益)st.open=true;//开启st.per=-1//前件指针st加入list;//list保存已生成的状态while(1){ 找到list中open原创 2009-07-07 21:00:00 · 2260 阅读 · 0 评论 -
动态规划,Dijkstra算法,A*算法的比较
动态规划,Dijkstra算法,A*算法的框架是相同的,不同点仅在于“推进点的选取”和“算法终止条件”。一,动态规划:(参见http://blog.csdn.net/iwantnon/archive/2009/07/07/4329269.aspx)推进点选取:(1),在粗犷的动态规划算法中:根本不进行选择,而是对所有已存在节点全部推进一遍。这可能造成如下两点浪费:[1原创 2009-07-07 21:03:00 · 8025 阅读 · 0 评论 -
最短路径算法
一,动态规划:设起点为st,终点为ed。用dis(v)表示v到st的距离。动态规划方程:dis(v)=$min_{(u,v)∈E}{dis(u)+d(u,v)}$初值dis(st)=0。伪代码:(带open标记,省略了追踪数组per)dis(st)=0open(st)=true;for all v!=st dis(v)=∞ open(v)=false原创 2009-07-07 21:10:00 · 2569 阅读 · 0 评论