1. 程式人生 > >交換類排序與選擇類排序 —選擇填空

交換類排序與選擇類排序 —選擇填空

1-1

對N個記錄進行堆排序,需要的額外空間為O(N)。 (1分)

T         F

1.F

 

1-2

對N個記錄進行簡單選擇排序,比較次數和移動次數分別為O(N​2​​)和O(N)。 (1分)

T         F

2.T

1-3

希爾排序是穩定的演算法。 (1分)

T         F

3.F

1-4

對N個不同的資料採用氣泡排序進行從大到小的排序,當元素基本有序時交換元素次數肯定最多。 (1分)

T         F

4.F

2-1

在快速排序的一趟劃分過程中,當遇到與基準數相等的元素時,如果左右指標都會停止移動,那麼當所有元素都相等時,演算法的時間複雜度是多少?(2分)

  1. O(logN)
  2. O(N)
  3. O(NlogN)
  4. O(N​2​​)

1.  3

2-2

在快速排序的一趟劃分過程中,當遇到與基準數相等的元素時,如果左右指標都不停止移動,那麼當所有元素都相等時,演算法的時間複雜度是多少?(2分)

  1. O(logN)
  2. O(N)
  3. O(NlogN)
  4. O(N​2​​)

2.   4

2-3

在快速排序的一趟劃分過程中,當遇到與基準數相等的元素時,如果左指標停止移動,而右指標在同樣情況下卻不停止移動,那麼當所有元素都相等時,演算法的時間複雜度是多少?(2分)

  1. O(logN)
  2. O(N)
  3. O(NlogN)
  4. O(N​2​​)

3.  4

2-4

對N個不同的資料採用冒泡演算法進行從大到小的排序,下面哪種情況下肯定交換元素次數最多? (1分)

  1. 從小到大排好的
  2. 從大到小排好的
  3. 元素無序
  4. 元素基本有序

4.   1

2-5

對於7個數進行氣泡排序,需要進行的比較次數為: (2分)

  1. 7
  2. 14
  3. 21
  4. 49

5.   3

2-6

有組記錄的排序碼為{ 46,79,56,38,40,84 },則利用堆排序的方法建立的初始堆為: (2分)

  1. 79,46,56,38,40,80
  2. 84,79,56,46,40,38
  3. 84,56,79,40,46,38
  4. 84,79,56,38,40,46

6.    4

2-7

採用遞迴方式對順序表進行快速排序,下列關於遞迴次數的敘述中,正確的是: (2分)

  1. 每次劃分後,先處理較長的分割槽可以減少遞迴次數
  2. 每次劃分後,先處理較短的分割槽可以減少遞迴次數
  3. 遞迴次數與每次劃分後得到的分割槽處理順序無關
  4. 遞迴次數與初始資料的排列次序無關

7.    3

2-8

對N個記錄進行快速排序,在最壞的情況下,其時間複雜度是: (1分)

  1. O(N)
  2. O(NlogN)
  3. O(N​2​​)
  4. O(N​2​​logN)

8.   3

2-9

有組記錄的排序碼為{46,79,56,38,40,84 },採用快速排序(以位於最左位置的物件為基準而)得到的第一次劃分結果為: (2分)

  1. {38,46,79,56,40,84}
  2. {38,79,56,46,40,84}
  3. {38,46,56,79,40,84}
  4. {40,38,46,56,79,84}

9.     4

2-10

對於序列{ 49,38,65,97,76,13,27,50 },按由小到大進行排序,下面哪一個是初始步長為4的希爾排序法第一趟的結果? (2分)

  1. 13,27,38,49,50,65,76,97
  2. 49,13,27,50,76,38,65,97
  3. 49,76,65,13,27,50,97,38
  4. 97,76,65,50,49,38,27,13

10.    2

2-11

給定初始待排序列{ 15,9,7,8,20,-1,4 }。如果希爾排序第一趟結束後得到序列為{ 15,-1,4,8,20,9,7 },則該趟增量為: (2分)

  1. 1
  2. 2
  3. 3
  4. 4

11.   4

2-12

對N個元素採用簡單選擇排序,比較次數和移動次數分別為: (1分)

  1. O(N​2​​), O(N)
  2. O(N), O(logN)
  3. O(logN), O(N​2​​)
  4. O(NlogN), O(NlogN)

12.    1

2-13

對於10個數的簡單選擇排序,最壞情況下需要交換元素的次數為: (2分)

  1. 9
  2. 36
  3. 45
  4. 100

13.    1

2-14

對N個記錄進行堆排序,最壞的情況下時間複雜度是: (1分)

  1. O(logN)
  2. O(N)
  3. O(NlogN)
  4. O(N​2​​)

14.    3

2-15

對N個記錄進行堆排序,需要的額外空間為: (1分)

  1. O(1)
  2. O(logN)
  3. O(N)
  4. O(NlogN)

15.    1

各種排序演算法所需輔助空間

1、 所有的簡單排序方法(包括:直接插入、起泡和簡單選擇)和堆排序的空間複雜度為O(1);


2、 快速排序為O(logn ),為棧所需的輔助空間;


3、 歸併排序所需輔助空間最多,其空間複雜度為O(n );


4、鏈式基數排序需附設佇列首尾指標,則空間複雜度為O(rd )。


1 、直接插入排序:比較次數 最少n-1次;最多(n-1)(n+2)/2
移動次數 最少0; 最多(n-1)(n+4)/2
使用一個輔助儲存空間,是穩定的排序;


2 、折半插入排序:比較次數 最少與最多同,都是n*log2n(其中2為底,下邊表示同),
移動次數 最少0,最多時間複雜度為O(n2);(n的平方,以下也如此表示);
使用一個輔助儲存空間,是穩定的排序;

3 、氣泡排序: 比較最少為:n-1次,最多時間複雜度表示為o(n2);
移動次數最少為0,最多時間複雜度表示為O(n2);
使用一個輔存空間,是穩定的排序;

4 、簡單選擇排序: 比較次數沒有多少之分,均是n(n-1)/2;
移動次數最少為0,最多為3(n-1);
使用一個輔存空間,是穩定的排序;


5 、快速排序:比較和移動次數最少時間複雜度表示為O(n*log2n);
比較和移動次數最多的時間複雜度表示為O(n2);
使用的輔助儲存空間最少為log2n,最多為n的平方;是不穩定的排序;

6、 堆排序: 比較和移動次數沒有好壞之分,都是O(n*log2n);
使用一個輔存空間,是不穩定的排序;

7、2-路歸併排序:比較和移動次數沒有好壞之分,都是O(n*log2n);
需要n個輔助儲存空間,是穩定的排序;