小強(qiáng)學(xué)習(xí)過大數(shù)據(jù)的“分治”思想后,對經(jīng)“分治”處理后的數(shù)據(jù)合并產(chǎn)生了興趣。他設(shè)計了一個算法,對兩個升序列表a、b中的數(shù)據(jù)(均為正整數(shù))進(jìn)行合并,合并后的數(shù)據(jù)仍保持升序。
(1)為了生成長度為num的升序列表x,小強(qiáng)寫了如下代碼。
①使用語句a=mk(5)調(diào)用函數(shù),加框處語句的執(zhí)行次數(shù)是
4
4
(填寫阿拉伯?dāng)?shù)字)。
②執(zhí)行上述代碼后,關(guān)于輸出的列表a、b中的數(shù)據(jù),下列說法正確的是 C
C
(單選,填字母:A.相同/B.不相同/C.可能相同)。
(2)為了描述方便,假設(shè)兩個列表中的元素個數(shù)m=n=5,其初始狀態(tài)如下:
b[0] |
b[1] |
b[2] |
b[3] |
b[4] |
10 |
11 |
15 |
16 |
17 |
為了使合并后的數(shù)據(jù)保存在列表a中,現(xiàn)對列表a擴(kuò)充n個元素“-1”,擴(kuò)充后狀態(tài)如下:
a[0] |
a[1] |
a[2] |
a[3] |
a[4] |
a[5] |
a[6] |
a[7] |
a[8] |
a[9] |
7 |
9 |
10 |
14 |
19 |
-1 |
-1 |
-1 |
-1 |
-1 |
變量i賦值為0,指向列表b的首數(shù)據(jù),變量p賦值為0,指向列表a的首數(shù)據(jù),變量tot指向列表a的最后一個有效數(shù)據(jù)(如圖所示)。
合并的具體算法如下:
Ⅰ.如果a[p]=–1,則直接將b[i]存儲到a[p]中,同時tot值增加1;
Ⅱ.如果a[p]>b[i],則整體將a[p],…,a[tot]向右移動一個位置,然后將b[i]存儲到空出的位置,同時tot值增加1。
Ⅲ.p值增加1;
小強(qiáng)編寫的合并代碼如下,請在劃線處填入合適代碼。