设A=(a1,a2,...,an),B=(b1,b2,...,bm)是两个递增有序的线性表(其中n、m均大于1),且所有数据元素均不相同。假设A、B均采用带头节点的单链表存放,设计一个尽可能高效的算法判断B是否为A的一个子序列,并分析你设计的算法的时间复杂度和空间复杂度。
举一反三
- 用带头节点单链表表示集合,假设该单链表中的元素递增有序,设计一个高效算法求两个集合的交集,并分析该算法的时间和空间复杂度。
- 算法设计题(5)设二维数组a[1..m,1..n]含有m*n个整数。1写一个算法判断a中所有元素是否互不相同?输出相关信息(yes/no);2试分析算法的时间复杂度。
- 【其它】对于有 n ( n ≥ 1 )个节点的循环单链表 L ,假设所有节点值是递增有序的,设计一个算法就地删除所有值重复的节点
- 有一个顺序表L,设计一个尽可能高效的算法删除其中所有值为z的元素,并给出算法的时间复杂度和空间复杂度。
- 有一个递增有序单链表L,设计一个算法将2插入到适当位置,以保持该表的有序性,并给出算法的时间复杂度和空间复杂度。