首页 > 试题广场 >

建立一个长度为n的有序单链表的时间复杂度为( )

[单选题]

建立一个长度为n的有序单链表的时间复杂度为()

  • O(n)
  • O(1)
  • O(n^2)
  • O(log(n))
可以理解成将n个元素依次插入到空链表中,每一个元素插入需要遍历之前已经有序的链表,找到合适的位置,复杂度是O(n)。一共有n个元素,所以就是O(n*n)
发表于 2018-04-02 17:19:26 回复(1)
为什么不能理解成:待构建的数据有序,构建时保存尾指针,这样是O(n)?
我觉得题目没有说清楚
发表于 2019-11-05 09:13:36 回复(4)

发表于 2017-08-02 10:18:07 回复(0)
很显然,无论头插尾插都是O(n),无论有序无序都是O(n),所以自然O(n²)
发表于 2021-08-31 16:49:56 回复(0)
第1遍找出最小的那个数,放入链表的第1个位置,然后把这个数去掉;
第2遍找出最小的那个数,放入链表的第2个位置,然后把这个数去掉;
.....
第n遍找出最小的那个数,放入链表的第n个位置,然后把这个数去掉。
发表于 2018-03-21 09:26:38 回复(0)
其实可以是o(nlogn )
发表于 2022-11-02 14:20:28 回复(2)
我觉得可以理解为对n个数进行直接插入排序,平均时间复杂度O(n^2)
发表于 2017-08-02 08:58:44 回复(2)
应该强调一下原序列无序,不然就是O(N)
发表于 2022-08-24 17:34:22 回复(1)
为什么不是O(nlogn+n),因为排序的时间是O(nlogn)建立链表的时间是O(n),然后答案是O(nlogn)
发表于 2021-09-18 15:28:45 回复(0)
建立一个长度为n的有序单链表,每次插入时都要遍历整个链表
发表于 2021-04-28 16:48:44 回复(0)
为什么不可以先创建一个无序的链表,然后在对这个无序链表排序呢?
发表于 2020-07-29 21:15:08 回复(1)