设线性表中有2n个元素,()在单链表上实现要比顺序表上实现效率更高
A 删除所有值为x的值(✓)按值查找时二者时间复杂度是一样的,为O(n),但在插入删除方面 单链表更为快捷
B 在最后一个元素后面插入一个新元素(×)要找到最后一个元素,单链表需要跑遍全表,而顺序表按序号查找一步到位,且顺序表中,在最后插入无需移动元素。
C 顺序熟悉前k个元素(×)都得从头一个个找,所以二者没有差别
D 交换第i个和第2n-i-1个元素(×)对于按序号查找永远顺序表有优势,想想单链表要从头哒哒哒的找到第i个,再找第2n-i-1,想想就头疼
给定的n个元素的一维数组,建立一个有序单链表的最低时间复杂度为()
首先题目有两个要求,①有序,②建立单链表
有两种想法①先建好单链表再插入元素,即直接插入法O(n^2) ②先在数组中排好序O(nlog2n),再插入有序表中O(n),故整体复杂度为O(nlog2n)
注意:时间复杂度的加法和乘法。
当二者有时间顺序,是平行关系,使用加法,取二者中最大值;O(m)+O(n)={Max(O(m),O(n)}
当二者是嵌套,就需要使用乘法,O(m)×O(n)=O(mn)