algorithm - 用 n 个元素初始化一个有序链表的复杂度是多少?
问题描述
假设我有n
想要创建排序链表的元素。添加第一个元素只是O(1)
因为列表最初是空的。然后要添加第二个元素,我必须与第一个元素进行比较,但它应该仍然是恒定的。然而,随着更多元素的添加,我对如何分析这一点感到困惑。最终,添加元素的最坏情况将达到n
,因为我们将不得不遍历链表上的所有值。并且会有n
插入。那么它最终会是 O(1+2+3+...+n) = O(n)
吗?
解决方案
最坏的情况下:
对于算法来说,最坏的情况是对数组进行排序。因此,对于每个元素(假设在第i个索引处),您必须比较i-1
元素。
因此,时间复杂度 = O (1 + 2 + 3 ... + n-1) ~ O(n^2)。
推荐阅读
- c# - 读取相机设备名称并将其作为变量存储在 c# 中
- html - 使用 flexbox 将 div 与另一个左对齐的同级 div 水平居中
- laravel - Laravel nova 不断抛出异常 Route [nova.login] not defined
- arrays - 枚举数组的最大值
- angular - 如何将数据传递给 Bootstrap 模态
- android - 错误:无法解决:com.google.firebase:firebase-appindexing
- bash - 变量替换
- java - 如何在java中查找读取文件中特定字符的数量
- sql-server - 将包含以科学计数法表示的数字的 varchar 转换为十进制时出错
- ruby-on-rails - 如何使用 Chef 安装 redmine