【问题标题】:complexity of the insertion sort using Doubly Linked List?使用双向链表的插入排序的复杂性?
【发布时间】: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


【解决方案1】:

插入链表需要时间 O(n),而不是 O(lg n),因为您必须导航链接结构才能找到插入点。

【讨论】:

    猜你喜欢
    • 2018-11-04
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多