【发布时间】:2012-04-18 23:59:15
【问题描述】:
插入排序要求按排序顺序插入元素 在实现时移动已排序列表的元素 通过数组。如果我们不使用数组,而是使用双向链表, 时间复杂度是多少?
时间复杂度是 O(n^2)?为什么? 如果我们考虑插入 n 个元素,那么它将是 log(1) + log(2) + log(3) + ..... + log(n) - n 次 n 个元素 因此复杂度应该是 O(nlogn)
【问题讨论】:
-
是什么让你认为它是
log(1) + log(2) + ... + log(n)而不是1 + 2 + ... + n?请在问题中添加更多详细信息,以便您获得更好的信息更丰富的答案 - 这将更有可能解释您的错误所在。 -
如果我们使用双向链表,则使用插入排序进行插入,则插入元素需要 log(k) 时间,其中 k 是已排序元素的数量
标签: sorting linked-list complexity-theory insertion-sort