Question 2
已知兩個元素依值遞增有序排列的線性表A和B,且同一表中的元素值各不相同。構造一個線性表C,其元素爲A和B中元素的交集,且表C中的元素也依值遞增有序排列。已知A和B的最大長度都是n。求你設計的高效算法的時間複雜度:
Question Explanation
根據A,B的增序性質,可以用兩個指針掃描A,B數組,以線性時間完成求交集的運算。
Question 3
下面的敘述中正確的是:
Question Explanation
鏈式存儲默認用單鏈表實現。 鏈式存儲時,按位置i查找,插入,刪除都需要與i的數值成正比的時間開銷。 順序存儲時,按位置i查找需要常數的時間開銷,與i無關;按位置i插入,刪除需要與總長度n-i的時間開銷。
Question 4
某個線性表以順序表形式實現,長度爲n,現在按值查找元素,假設線性表中沒有該值的概率爲p,且要查找的值在線性表中等概率出現。則平均比較次數爲:
Question 5
某個線性表存儲元素如下:a0,a1,a2,a3,a4,a5,a6,a7,a8。如果該線性表以順序表形式實現,那麼在ai(0≤i≤9)的位置插入新元素,需要移動的元素個數爲:
Question Explanation
每次插入新元素後,需要將該元素之後的元素都向後移動一個位置。需要移動的元素下標有i,i+1,…,8,共9-i個元素。
Question 6
某個線性表存儲元素如下:a0,a1,a2,a3,a4,a5,a6,a7,a8。如果該線性表以單鏈表形式實現(含頭結點),已知頭指針,那麼在 ai(0≤i≤9)前的位置插入新元素,需要移動指針的次數爲:
Question Explanation
已知線性表存儲結構爲含頭節點的單鏈表,當要在ai元素位置插入元素時,需要把指針從頭節點移動到ai節點的前一個節點,共需要i次指針移動操作。