软件包管理与文件传输技术解析
1. 软件包管理中的增量搜索
在软件包管理中,生成大量组合后舍弃大部分组合的做法效率低下。可以对递归生成器进行修改,当部分生成的软件包组合不合法时停止生成。
修改后程序的主函数如下:
import json
import sys
def main():
manifest = json.load(sys.stdin)
packages = list(manifest.keys())
if len(sys.argv) > 1:
packages.reverse()
accum = []
count = find(manifest, packages, accum, [], 0)
print(f"count {count}")
for a in accum:
print(a)
find 函数有五个参数:
1. manifest :告知软件包兼容性的清单。
2. remaining :尚未考虑的软件包名称。
3. accum :用于保存目前找到的所有有效组合的累加器。
4. current :接下来要扩展的部分完成的组合。
5. count :到目前为止考虑的组合数量,用作效率衡量指标。
find
超级会员免费看
订阅专栏 解锁全文
782

被折叠的 条评论
为什么被折叠?



