无论数据集 n 如何,O(1)始终在同一时间执行。
O (1)的一个例子是使用 index 访问其元素的 ArrayList。
O(n)也称为线性顺序,其性能将成线性增长,并与输入数据的大小成正比。
O (n)的一个例子是随机位置的 ArrayList 插入和删除。随后的每次随机插入/删除都会导致数组列表中的元素在其内部数组的左右移动,以保持其线性结构,更不用说创建新数组和从旧数组复制元素到新数组,因此会占用昂贵的处理时间,从而损害性能。
这里有一个简单的类比;
假设你正在下载电影在线,与 O (1) ,如果它需要5分钟下载一部电影,它仍然需要同样的时间下载20部电影。所以不管你下载了多少部电影,不管是一部还是20部,它们都需要相同的时间(5分钟)。这种类比的一个常见例子是,当你去电影图书馆时,无论你选择一部电影还是5部,你都会一次性选择它们。所以花了同样的时间。
然而,使用 O (n) ,如果下载一部电影需要5分钟,那么下载10部电影需要大约50分钟。所以时间不是恒定的,或者与你下载的电影数量成正比。