【问题标题】:Time to find the largest element in a Linked list是时候在链表中找到最大元素了
【发布时间】:2013-12-31 18:23:19
【问题描述】:

我有一个有序链表。我想知道在这两种情况下找到最大元素的时间:

  • 如果我维护一个指向链表末尾的尾指针,并且
  • 如果我不这样做。

【问题讨论】:

    标签: search data-structures linked-list time-complexity


    【解决方案1】:

    对于有序链表:

    • O(1) 如果列表从最大到最小排序,因为第一个已经是最大的。

    • O(n) 如果列表从 min 到 max 排序,如果您还有尾指针,它将变为 O(1)。原因是最大元素是链表中的最后一个。因此你必须遍历到尾部(O(n))。另一方面,当你有尾指针时,这将是O(1),你只需返回尾指针指向的内容。

    对于无序链表:

    • 不管你有没有尾指针,总是O(n)。原因是,对于一个无序列表,你必须遍历(O(n))每一个来确定哪一个是最大值。即使使用尾指针也无济于事。

    【讨论】:

    • 如果它是一个无序列表,无论是否有尾指针,都是 O(n)。
    • @keshlam 是的,你是对的。将其添加到答案中。谢谢。 :)
    • 如果有任何解释就好了,因为 OP 显然一无所知...
    猜你喜欢
    • 2015-01-05
    • 2014-05-07
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 2014-03-05
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多