內排序相關習題

2013-09-22 08:51:57web

轉自:http://blog.csdn.net/lylscut/article/details/6471051shell

內排序spa

單項選擇題.net

1.在全部的排序方法關鍵比較次數記錄排列次序無關的是orm

A.希爾排序    B.起泡排序   C.插入排序   D. 選擇排序對象

2.設有1000個無序的元素,但願用最快的速度挑選出其中十個最大的元素,最好選用   什麼排序法。blog

A.起泡排序    B.快速排序   C.排序     D.基數排序排序

3.在待排序的元素序列基本有序的前提下,效率最高的排序方法遞歸

A. 插入排序   B.選擇排序   C. 快速排序  D.歸併排序內存

4.一組記錄排序是(467956384084),利用堆排序方法創建的堆爲

A.79,46,56,38,40,80

B.84,79,56,38,40,46

C. 84,79,56,46,40,38

D.84,56,79,40,46,38

5.一組記錄關鍵是(467956384084),則利用快速排序方法,以第一個記錄爲基準獲得的一次劃分結果爲

A.38,40,46,56,79,84

B.40,38,46,79,56,84

C. 40,38,46,56,79,84

D. 40,38,46,84,56,79

6.一組記錄排序爲(25481635798223403672),其中又五個長度爲二的有序表,按歸併排序方法對該序列進行一次歸併後的結果爲

A.16 25 35 48 23 40 79 82 36 72

B.16 25 35 48 79 82 23 36 40 72

C.16 25 48 3579 82 23 36 40 72

D.16 25 35 48 79 23 36 40 72 82

7.排序方法,從未排序序列依次取出元素與已排序序列(時爲空)的元素進行比較,將其放入已排序序列的正確位置上的方法,稱爲

A.希爾排序    B.起泡排序   C.插入排序   D. 選擇排序

8排序方法,從未排序序列挑選元素,並將其依次放入已排序序列(時爲空)的一端方法,稱爲

A.希爾排序   B.歸併排序    C.插入排序   D.快速排序

9.用某種排序方法對線性表(258421471527683520)進行排序時,元素序列的變化狀況以下:

1258421471527683520.

2201521254727683584

3152021253527476884

4152021252735476984

則所採用的排序方法

A. 選擇排序    B希爾排序   C歸併排序   D 快速排序

10.下述幾種排序方法,平均查找長度最小的是

A插入排序   B選擇排序   C 快速排序   D 歸併排序

11.下列幾種排序方法,要求內存量最大的是

A插入排序   B選擇排序   C 快速排序   D 歸併排序

12.快速排序方法   狀況下不利於發揮其長處

A.要排序的數據量太大

B.要排序的數據含有太多多個相同值

C.要排序的數據已基本有序

D.要排序的數據個數爲奇數 
 

112 填空題

   1.在對一組記錄543896231572604583)進行直接插入排序時,當把第7記錄插入到有序表時,爲尋找插入位置需比較   )次。

   2.在利用快速排序方法對一組記錄543896231572604583)進行快速排序時,遞歸調用而使用的棧所能達到的最大深度爲(   ),共需遞歸調用的次數爲(   ),其中第二次遞歸調用是對(   )一組記錄進行快速排序

   3.在堆排序、快速排序和歸併排序,若只從存儲空間考慮,則應首先選取(   方法,其次選取(   方法,最後選取(   方法;若只從排序結果的穩定性考慮,則應選取(   方法;若只從平均狀況下最快考慮,則應選取(   方法;若只從最壞狀況下排序最快而且要節省內存考慮,則應選取(   方法

   4在插入排序、希爾排序、選擇排序、快速排序、堆排序、歸併排序和基數排序排序是不穩定的有(   )。

   5.在插入排序、希爾排序、選擇排序、快速排序、堆排序、歸併排序和基數排序,平均比較次數最少的排序是(  ),須要內存容量最多的是(   )。

   6.在堆排序和快速排序,若原始記錄接近正序或反序,則選用(   ),若原始記錄無序,則最好選用(   )。

   7.在插入和選擇排序,若數據基本正序,則選用(   );若數據基本反序,則選用(   )。

   8.對n個元素的序列進行起泡排序時,最少的比較次數是(   )。

      
 

112   基本題答案

1121   選擇題答案

1.D  2.C  3.A  4.B  5.C  6.A  7.C  8.D  9.D  10.C  11.D  12.C

1122   填空題答案

13    2.(1)2   (2) 4  (3)(23,38,15)    3.(1)排序  2)快速排序  3)歸併排序

4)歸併排序   5)快速排序   6)堆排序

4.希爾排序,選擇排序,快速排序和堆排序

5.(1)快速排序   2)基數排序

6.(1)堆排序    2)快速排序

7.(1)插入排序   2)選擇排序

8n-1

   
 

    1. 習題解析
  1. 已知序列{17186040732736585},請給出採用起泡排序法對該序列做升序排列時的每一趟的結果。

解:依題意,採用起泡排序的各趟結果以下:

17186040732736585

1趟:17184073260657385

2趟:17187324060657385

3趟:17718324060657385

4趟:71718 324060657385

5趟:71718 324060657385

5趟無元素交換,則排序結束。 
 

  1. 已知序列{5038751261908170897275653462},請給出採用基數排序法對該序列升序排序時每一趟的結果。

解:依題意,採用基數排序排序的各趟的結果以下:

5038751261908170897275653462

1趟(按個位排序):1706146251250365327587897908

2趟(按十位排序):5039085126536146217027587897

3趟(按百位排序):6187170275462503512653897908 
 

  1. 已知序列{10184361219188},請給出採用shell排序法對該序列做升序排序時每一趟的結果。

解:依題意,採用shell排序排序的各趟結果以下:

10184361219188

1趟:10143612189158

2趟:41631081591812

3趟:13468910121518

3趟無元素交換,則排序結束。 
 

4.希爾排序、簡單選擇排序、快速排序和堆排序是不穩定的排序方法, 試舉例說明。 
【解答】 
(1) 希爾排序 { 512 275 275* 061 } 增量爲
{ 275* 061 512 275 } 
增量爲
{ 061 275* 275 512 }

(2) 直接選擇排序 { 275 275* 512 061 } i = 1 
{ 061 275* 512 275 } i = 2 
{ 061 275* 512 275 } i = 3 
{ 061 275* 275 512 }

(3) 快速排序 { 512 275 275* } 
{ 275* 275 512 }

(4) 排序 { 275 275* 061 170 } 已是最大堆,交換275170 
{ 170 275* 061 275 } 
對前3個調整 
{ 275* 170 061 275 } 3個最大堆,交換275*061 
{ 061 170 275* 275 } 
對前2個調整 
{ 170 061 275* 275 } 2個最大堆,交換170061 
{ 061 170 275* 275 } 
 

 

5.設待排序排序序列爲{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18}, 試分別寫出使用如下排序方法每趟排序後的結果。並說明作了多少次排序比較  
(1) 
直接插入排序 (2) 希爾排序(增量爲5,2,1) (3) 起泡排序 
(4) 快速排序 (5) 直接選擇排序 (6) 錦標賽排序 
(7) 排序 (8) 二路歸併排序 (9) 基數排序 
【解答】 
(1) 直接插入排序

 
 
希爾(shell)本人採起的增量序列爲 ?n/2?, ??n/2?/2?, ??n/2?/2?/2?, …,1。通常地,增量序列可採用?nα?, ??nα?α?, ??nα?α?α?, …, 1。大量實驗代表,取α=0.45454的增量序列比取其餘的增量序列的優越性更顯著。計算 ?0.45454n? 的一個簡單方法是用整數算術計算(5*n-1)/11。須要注意,當a< 1/2時,增量序列可能不以1結束,須要加以判斷和調整。

(3) 起泡排序 
 

 
 
(8) 
二路歸併排序 
採用迭代的方法進行歸併排序。設待排序的數據對象有
n個。首先把每個待排序的數據對象看做是長度爲的歸併項,而後進行兩兩歸併,造成長度爲2的歸併項,再對它們兩兩歸併,造成長度爲4的歸併項,如此一趟一趟作下去,最後獲得長度爲n的歸併結果。

相關文章
相關標籤/搜索