以下是以动态规划算法状态压缩法为基础进行。
城市距离图以以上4个城市为例,形成一张二维矩阵表
城市距离二维矩阵表状态压缩法使用二进制记录经过城市节点的距离,以以上4个城市为例,下面是4*7的DP数组
计算过程表推而广之,n个城市下,城市距离二维矩阵表空间复杂度是n*n,计算过程DP表空间复杂度
空间复杂度优化点
北京超市实际数量百度搜索结果:全北京超市总数:60218个,就近选择100个超市送货,DP表空间复杂度就是
空间复杂度100个超市中很多都不是直接可达的,造成空间浪费
整型数组的大小受限于开发语言和操作系统
Java语言整型数组上限为225 * 225 ,即26个超市
所以使用HASH表来代替计算过程二维表
KEY=总坐标,横坐标
VALUE=DP表对应值
结果
修改后空间使用可计算城市节点数不受语言和操作系统限制
节省了存储空间
单系统存取情况下,HASH比数组效率低
网友评论