两种存储结结构A*算法比较
A*这个算法最消耗的时间的有3个地方。
1:在open里寻找F值最小的点
2:判断元素是不是在open表里
3:判断元素是不是在close表里
3个地方都是查找操作。
线性存储结构分析:
在最坏的的情况下,线性结构查找复杂为O(n)
估算用线性结构查找路径所用时间(规模为N):
(1)在open寻找最小F点所用时间F1(n)=N;
(2)当以上一次最小F点为新的中心点进行扩展时,添加一个节点要两次判断(open,close),所以花费总时间为
F2(n)=4*2*N;
下面是我用线性存储结构寻找一次路径所花费的时间:
非线性存储结构(avl or rbt 树结构)分析:
在最坏的的情况下,树结构查找复杂为O(log2(下标) N)
估算用树结构查找路径所用时间(规模为N):
(1)在open寻找最小F点所用时间F1(n)=log2(下标) N;
(2)当以上一次最小F点为新的中心点进行扩展时,添加一个节点要两次判断(open,close),所以花费总时间为
F2(n)=4*2*log2(下标) N;
下面是我用树存储结构寻找一次路径所花费的时间