【问题标题】:How can I measure the performances using a LinkedList and ArrayList? [duplicate]如何使用 LinkedList 和 ArrayList 衡量性能? [复制]
【发布时间】:2018-12-03 13:21:17
【问题描述】:

我已经实现了冒泡和快速排序算法,现在我必须使用下面的 LinkedList 和 ArrayList 代码来衡量它们的性能。

Instant start = Instant.now();
Sort…
Instant stop = Instant.now();
Duration duration = Duration.between(start, stop);
System.out.println(duration);

为什么我们在使用 ArrayList 和 LinkedList 时会得到不同的时间?

【问题讨论】:

  • 哪个更好? ArrayListLinkedListList 接口的不同实现。它们的结构不同,这导致排序(和其他操作)的时间复杂度不同。在this question中查找更多信息
  • 因为访问不同类型列表中的元素的时间复杂度不同

标签: java arraylist linked-list


【解决方案1】:

ArrayListLinkedList 有不同的实现。

检索带有ArrayList 的元素可以在 O(1) 中完成,因为您只需要知道元素的索引,就可以直接从存储它的数组中检索它。使用LinkedList,您需要在获取请求的元素之前遍历列表中的元素,因此可以在 O(n) 中完成。

这种差异可以传播到您的排序时间。

【讨论】:

    【解决方案2】:

    因为它们的结构不同。 例如 ArrayList 的迭代速度更快,而 LinkedList 的插入和删除速度更快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-14
      • 2016-03-16
      • 2012-05-26
      • 2023-04-10
      • 2011-11-10
      • 1970-01-01
      • 2016-12-19
      • 2022-11-11
      相关资源
      最近更新 更多