波波的資料結構 排序(1)

2021-10-15 00:19:15 字數 4475 閱讀 4396

波波的資料結構屬實上的快,這裡將會寫些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 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。...