以下算法的時間復雜度為()
A.O(n) B.O(√n) C.O(nlog2n) D.O(log2n)
A和B是長度為n的兩個數組。設計一個算法,該算法輸出長度為n的數組C,要求: (1)數組C中的每一個元素C[i] = || {A[j]| A[j]≤B[i], 1≤j≤n} ||, 其中||S||表示集合S中的元素個數。例如:下表給出了長度為4的兩個數組A和B,以及滿足要求的數組C; (2)所設計算法盡可能高效。 (1) 描述算法的基本設計思想; (2) 用算法描述語言描述算法。 (3) 給出算法的時間復雜性分析。
設高度為h的二叉樹上只有度為0和度為2的結點,則此類二叉樹中所包含的結點數至少為(2h-1 )。已知一個帶有表頭結點的單鏈表,結點結構為(data, link)。假設該鏈表只給出了頭指針list。在不改變鏈表的前提下,請設計一個盡可能高效的算法,查找出鏈表中倒數第k(k為正整數)個位置上的結點。若查找成功,算法輸出該結點的data域的值,并返回1;否則,只返回0。要求: (1) 描述算法的基本設計思想; (2) 用算法描述語言描述算法; (3) 給出算法的時間復雜性分析。
算法的基本思想如下: