随笔分类 -  algorithm

摘要:A*算法是游戏非常常用的寻路算法。至于其理论知识就不贴出来了,网上太多了。一开始也没有看理论性太强的东西,先实现了再说。其实刚看完算法就有一种特想证明其正确性的想法。自我感觉A*算法和动态规划的思想是相同的(动态规划其实也不是熟悉,运筹学白学了)。f(n) = g(n) + h(n);0.节点信息{节点位置,父节点,F值,G值,H值},确定起始节点和终结节点;1.初始化开启队列、关闭队列(开启队列表示等待探索的节点集,关闭队列表示已经探索过的节点),将起始点信息加入开启队列中;2.在开启队列中找出 F 值最小的节点。若队列为空则返回失败,即未能找到路线到达终点的。将节点转到关闭队列中,若节点为 阅读全文
posted @ 2012-11-01 20:03 legendmaner 阅读(308) 评论(0) 推荐(0)
摘要:// 5.查找最小的k个元素(数组)// 题目:输入n个整数,输出其中最小的k个。// 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。// 注:// 1 在数据量不大的情况下,排序// 2 维护一个最小k 的数组 ,复杂度 为 o(k * N)// 3 为一个最小K个数的最大堆 o(log2 k * N)//每次看这些小算法都不以为然,每次都巨耗时间,比我想象的要多的多啊.....#include <iostream>#define N 30using namespace std;int gheap[N] = {0};int count = 0 阅读全文
posted @ 2012-10-12 22:08 legendmaner 阅读(224) 评论(0) 推荐(0)
摘要:各种折腾... 1 #include <iostream> 2 #define MAX(a,b) ((a)>(b)?(a):(b)) 3 #define SIZEOFARRY(a) sizeof(a)/sizeof(int) 4 #define ASSERT(a) if((a)==NULL)exit(0) 5 6 using namespace std; 7 8 typedef int Datatype; 9 10 typedef struct AVLTNode 11 { 12 struct AVLTNode* pLeft; 13 struct ... 阅读全文
posted @ 2012-09-09 13:57 legendmaner 阅读(263) 评论(0) 推荐(0)