排序練習題

2021-08-27 07:42:55 字數 2308 閱讀 1765

一、選擇題

1、以下序列不是堆的是 d 。

a、(100,85,98,77,80,60,82,40,20,10,66)

b、(100,98,85,82,80,77,66,60,40,20,10)

c、(10,20,40,60,66,77,80,82,85,98,100)

d、(100,85,40,77,80,60,66,98,82,10,20)

2、在檔案「區域性有序」或檔案長度較小的情況下,最佳內部排序方法是 a 。

a、直接插入排序 b、氣泡排序

c、簡單選擇排序 d、歸併排序

3、在下列演算法中, c 演算法可能出現下列情況;在最後一趟開始之前,所有的元素都不在其最終的位置上。

a、堆排序 b、氣泡排序

c、插入排序 d、快速排序

4、從未排序的序列中依次取出乙個元素與已排序序列中的元素依次進行比較,

然後將其放在排序序列的合適位置,該排序方法稱為 a 排序法。

a、插入 b、選擇 c、希爾 d、二路歸併

5、排序趟數與序列原始狀態有關的排序方法是 d或c 排序法。

a、插入 b、選擇 c、冒泡 d、快速

6、下面給出的四種排序方法中, d 排序是不穩定排序法。

a、插入 b、冒泡 c、二路歸併 d、堆

7、快速排序在最壞情況下時間複雜度是o(n2),比 a 的效能差。

a、堆排序 b、起泡排序 c、選擇排序

8、若需在o(nlog2n)的時間內完成對陣列的排序,且要求排序是穩定的,則可選擇的排序方法是 c 。

a、快速排序 b、堆排序 c、歸併[排序 d、直接插入排序

9、就排序演算法所用的輔助空間而言,堆排序、快速排序、歸併排序的關係是 a 。

a、堆排序《快速排序《歸併排序 b、堆排序《歸併排序《快速排序

c、堆排序》歸併排序》快速排序 d、堆排序》快速排序》歸併排序

e、以上答案都不對

10、下面排序方法中,關鍵字比較次數與記錄的初始排列無關的是 d 。

a、希爾排序 b、氣泡排序 c、直接插入排序 d、直接選擇排序

11、對記錄的關鍵字集合key=進行排序,各趟排序結束時的結果為:

50 26 38 80 70 90 8 30 40 20

50 8 30 40 20 90 26 38 80 70

26 8 30 40 20 80 50 38 90 70

8 20 26 30 38 40 50 70 80 90

其使用的排序方法是 c 。

a、快速排序 b、基數排序 c、希爾排序 d、歸併排序

12、一組記錄的關鍵字為,則利用堆排序的方法建立的初始堆為 b 。

a、80,45,50,40,42,85 b、85,80,55,40,42,45

c、85,80,55,45,42,40 d、85,55,80,42,45,40

13、在對n個元素進行氣泡排序的過程中,最好情況下的時間複雜性為 d 。

a、o(1) b、o(nlog2n) c、o(n^2) d、o(n)

14、在對n個元素進行快速排序的過程中,第一次劃分最多需要移動 d 次元素

(包括開始將基準元素移動到臨時變數的那一次)。

a、n/2 b、n-1 c、n d、n+1

15、下述幾種排序方法中,要求記憶體量最大的是 d 。

a、插入排序 b、選擇排序 c、快速排序 d、歸併排序

16、下面排序方法中,時間複雜性不是o(n^2)的是 b 。

a、直接插入排序 b、二路歸併排序

c、氣泡排序 d、直接選擇排序

二、判斷題

1、快速排序的速度在所有排序方法中為最快,而且所需附加空間最少。(錯 )

2、內排序的快速排序方法,在任何情況下均可得到最快的排序結果。( 錯 )

3、基數排序的設計思想是按照對關鍵字值的比較來實施的。(錯 )

4、在快速排序演算法中,不可以用佇列替代棧。( 錯 )

5、用希爾方法排序時,若關鍵字初始排序雜亂無序,則排序效率較低。( 錯 )

6、當待排序的元素很大時,為了交換元素的位置,移動元素要占用較多的時間,

這是影響複雜度的主要因素。( 對 )

7、對於n個記錄的集合進行歸併排序,在最壞情況下所需要的時間是o(n^2)。(錯 )

8、對於n個記錄的集合進行氣泡排序,在最壞情況下所需要的時間是o(n^2)。( 對 )

9、使用置換選擇排序的主要目的是為了增加初始歸併段的長度。( 對 )

10、對乙個堆,按二叉樹層次進行遍歷可以得到乙個有序序列。( 錯 )

11、有一小根堆,堆中任意結點的關鍵字均小於它的左、右孩子關鍵字。

其具有最大值的結點一定是乙個葉結點並可能在堆的最後兩層中。( 對 )

小範圍排序練習題

已知乙個幾乎有序的陣列,幾乎有序是指,如果把陣列排好順序的話,每個元素移動的距離可以不超過k,並且k相對於陣列來說比較小。請選擇乙個合適的排序演算法針對這個資料進行排序。給定乙個int陣列a,同時給定a的大小n和題意中的k,請返回排序後的陣列 解題思路 因為該資料是差不多有序,肯定用插入排序複雜度了...

練習題005 氣泡排序

c語言練習題目錄索引 題目 給定一組數字,使用氣泡排序將其按公升序序列排序。解題思路 氣泡排序利用兩個巢狀while迴圈完成,內層迴圈每迴圈一次就將找的的最大數已到最後乙個位置,此時這個位置就不用管了,再排序前面的數。y 交換兩數的位置 void show int arr,int len 列印陣列 ...

python書中練習題 python練習題

1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...