卡尔白~ (@Karlbaey) 在 程序设计#3%2 - 程序的复杂度 中发帖
上期指路→
https://linux.do/t/topic/935402
原文 URL 请滑动至文末查看,谢谢支持!
复杂度是能够用来衡量程序好坏的概念,它用来描述随着输入大小 n 的增长,程序的处理时间和占用空间会怎样改变。其中有一个观念不可忽略:就是我们通常假设 n 是一个比较大的数(例如 10,000),这样计算复杂度才是有价值的,否则,在 n 很小时,复杂度无法明确地展示程序的好坏。
复杂度的诞生
用一个比喻开始。
你是一名图书馆管理员。这天馆长找你,让你在一个有 100,000 本书的书架上找到所有的《三体2:黑暗森林》。
这个书架可能有两种最极端的情况。
A:所有的书杂乱地放在书架上,毫无规律。
B:所有的书都严格地按照书名拼音 A-Z 的顺序整齐摆好。
更有利于我们搜索的排列方式显然是 B。在后者的前提下,我们只要在书架找到“S”开头的书籍,接着找“T”...