波波的資料結構屬實上的快,這裡將會寫些pta的解析,算是複習 預習,幫助我與大家期末不掛科
2-1對一組包含10個元素的非遞減有序序列,採用直接插入排序排成非遞增序列,其可能的比較次數和移動次數分別是:
a.100, 100
b.100, 54
c.54, 63
d.45, 44
解析:他問的是可能的比較次數和移動次數分別是多少,那我們就假設原理就是全部遞增的,插入排序後要求全部遞減,這樣的比較次數應該是最多的,即除了第乙個進去的元素,其他的每一次新插入的元素都要跟已經插進去的元素做對比,共1一直加到n次(n=9),即45次。
再次注意,他問的是可能,所有a,b,c都不可能,而44注意也是可能,因為如果中間有兩個元素相等,他們比較時是不會移動的,即插入排序的穩定性。
2-2對大部分元素已有序的陣列進行排序時,直接插入排序比簡單選擇排序效率更高,其原因是:a
(i). 直接插入排序過程中元素之間的比較次數更少
(ii). 直接插入排序過程中所需要的輔助空間更少
(iii). 直接插入排序過程中元素的移動次數更少
a.僅 i
b.僅 iii
c.僅 i、ii
d.i、ii 和 iii
解析:(i).最好情況下,比較1次;
(ii). 直接插入法只需要乙個記錄的輔助空間r[0],所以空間複雜度為o(1);
(iii).最好情況下,不移動;
(i).無論什麼情況下,比較次數都為 n(n-1)/2;
(ii). 只有在兩個記錄交換時需要乙個輔助空間,所以空間複雜度為o(1);
(iii).最好情況,不移動;
所以 (i). 對;(ii). 一樣,錯;(iii).一樣,錯;
2-3對同一待排序序列分別進行折半插入排序和直接插入排序, 兩者之間可能的不同之處是__d__。
a.排序的總趟數
b.元素的移動次數
c.使用輔助空間的數量
d.元素之間的比較次數
2-4對於序列,按由小到大進行排序,下面哪乙個是初始步長為4的希爾排序法第一趟的結果?b
a.13,27,38,49,50,65,76,97
b.49,13,27,50,76,38,65,97
c.49,76,65,13,27,50,97,38
d.97,76,65,50,49,38,27,13
解析:根據希爾排序,每個元素與其4位後的元素相比較,因此49,76;38,13;65,27;97,50
2-5對初始資料序列進行希爾排序。若第一趟排序結果為( 1, 3, 7, 5, 2, 6, 4, 9, 11, 10, 8 ),第二趟排序結果為( 1, 2, 6, 4, 3, 7, 5, 8, 11, 10, 9 ),則兩趟排序採用的增量(間隔)依次是:d
a.3, 1
b.3, 2
c.5, 2
d.5, 3
解析:依次比較發現步長為5與3
2-6希爾排序的組內排序採用的是( a)。
a.直接插入排序
b.折半插入排序
c.快速排序
d.歸併排序
2-7對n個不同的資料採用冒泡演算法進行從大到小的排序,下面哪種情況下肯定交換元素次數最多?a
a.從小到大排好的
b.從大到小排好的
c.元素無序
d.元素基本有序
解析:逆序 時間複雜度為o(n^2)
2-8若用氣泡排序法對序列從大到小排序,需進行(c)次比較。
a.25
b.3c.15
d.10
解析:5+4+3+2+1=15
2-9對一組資料(2,12,16,88,5,10)進行排序,若前三趟排序結果如下:
第一趟:2,12,16,5,10,88
第二趟:2,12,5,10,16,88
第三趟:2,5,10,12,16,88
則採用的排序方法可能是(a )
a.氣泡排序
b.希爾排序
c.歸併排序
d.基數排序
2-10
對n個不同的排序碼進行氣泡排序,在元素無序的情況下比較的次數最多為( d)。
a.n+1
b.nc.n-1
d.n(n-1)/2
解析:1+2+3+4+5…+n
2-12
對一組資料(84,47,25,15,21)排序,資料的排列次序在排序的過程中的變化為:
初始序列 84 47 25 15 21 第一趟排序結果 15 47 25 84 21 第二趟排序結果15 21 25 84 47 第三趟排序結果15 21 25 84 47
則採用的排序是 (a )。
a.選擇排序
b.氣泡排序
c.快速排序
d.插入排序
解析:序列中最小的元素在第一趟插入第乙個位置,所以是選擇排序
2-13
採用遞迴方式對順序表進行快速排序,下列關於遞迴次數的敘述中,正確的是c
a.每次劃分後,先處理較長的分割槽可以減少遞迴次數
b.每次劃分後,先處理較短的分割槽可以減少遞迴次數
c.遞迴次數與每次劃分後得到的分割槽處理順序無關
d.遞迴次數與初始資料的排列次序無關
2-14
有組記錄的排序碼為,採用快速排序(以位於最左位置的物件為基準而)得到的第一次劃分結果為:d
a.b.
c.d.
解析:該方法的基本思想是:
1.先從數列中取出乙個數作為基準數。
2.分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。
3.再對左右區間重複第二步,直到各區間只有乙個數。
2-15
執行一趟快速排序能夠得到的序列是(a )。
a.[41,12,34,45,27] 55 [72,63]
b.[45,34,12,41] 55 [72,63,27]
c.[63,12,34,45,27] 55 [41,72]
d.[12,27,45,41] 55 [34,63,72]
解析:參照上題快速排序的思想
2-16
設一組初始記錄關鍵字序列為(60,80,55,40,42,85),則以第乙個關鍵字60為基準而得到的一趟快速排序結果是( c)。
a.40,42,60,55,80,85
b.42,45,55,60,85,80
c.42,40,55,60,80,85
d.42,40,60,85,55,80
2-17
假定對元素序列(7,3,5,9,1,12,8,15)進行快速排序,則進行第一次劃分後,得到的左區間中元素的個數為( b)
a.2b.3
c.4d.5
解析:分別為 3 5 1 基準數為7
為實現快速排序法, 待排序序列宜採用儲存方式是_a___。
a.順序儲存
b.雜湊儲存
c.鏈式儲存
d.索引儲存
2-20
有組記錄的排序碼為,則利用堆排序的方法建立的初始堆為:
a.79,46,56,38,40,80
b.84,79,56,46,40,38
c.84,56,79,40,46,38
d.84,79,56,38,40,46
解析:先把樹畫出來,然後構建大根堆
下列四個序列中,哪乙個是堆(c )
a.75,65,30,15,25,45,20,10
b.75,65,45,10,30,25,20,15
c.75,45,65,30,15,25,20,10
d.75,45,65,10,25,30,20,15
解析:c選項是大根堆
2-24
下列的排序中哪一組是堆 c
a.29 94 48 33 61 10 22 13
b.67 44 66 16 37 11 20 33
c.99 66 45 33 37 10 22 13
d.87 62 22 33 35 13 46 10
2-25
堆的形狀是一棵(c )。
a.二叉排序樹
b.滿二叉樹
c.完全二叉樹
d.平衡二叉樹
2-26
下列排序演算法中,哪種演算法可能出現:在最後一趟開始之前,所有的元素都不在其最終的位置上?(設待排元素個數n>2)
a.氣泡排序
b.插入排序
c.堆排序
d.快速排序
解析:將最小的插入進去
波波的資料結構 順序表
波波的資料結構屬實上的快,這裡將會寫些pta的解析,算是複習 預習,幫助我與大家期末不掛科 順序表2 1 對於順序儲存的長度為n的線性表,訪問結點和增加結點的時間複雜度為 b a.o 1 o 1 b.o 1 o n c.o n o 1 d.o n o n 解析 順序儲存可以實現 隨機訪問 因此訪問結...
波波的資料結構 鍊錶
波波的資料結構屬實上的快,這裡將會寫些pta的解析,算是複習 預習,幫助我與大家期末不掛科 2 1線性表若採用鏈式儲存結構時,要求記憶體中可用儲存單元的位址 d a.必須是連續的 b.部分位址必須是連續的 c.一定是不連續的 d.連續或不連續都可以 解析 與順序表不同,可連續可不連續 2 2對線性表...
資料結構排序1
void swap int a,int i,int j void printfa int a,int len printf n 1 氣泡排序 氣泡排序演算法的運作如下 從後往前 1 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。...