当前位置:嗨网首页>书籍在线阅读

28-算法解析及优化拓展

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.4.6 算法解析及优化拓展

1.算法复杂度分析

(1)时间复杂度

分支限界法求布线问题,按照m叉树(m=4)的分析,空间树最坏情况下的结点为4n个,而空间树的深度n却是未知的,因此通过这种方法很难确定该算法的时间复杂度。那怎么办呢?我们要看看到底生成了多少个结点。

实际上,每个方格进入活结点队列最多1次,不会重复进入,因此对于m×n的方格阵列,活结点队列最多处理O(mn)个活结点,生成每个活结点需要O(1)的时间,因此算法时间复杂度为O(mn)。构造最短布线路径需要O(L)时间,其中L为最短布线路径长度。

(2)空间复杂度

空间复杂度为O(n)。

2.算法优化拓展

大家可以动手写写,如果不用分支限界法,而是按照求特殊的最短路径问题,算法的复杂度如何呢?是不是比单源最短路径Dijkstra算法简单多了?