PTA資料結構與演算法 第七章 排序

2021-10-10 21:02:42 字數 2999 閱讀 4488

1-1僅基於比較的演算法能得到的最好的「最壞時間複雜度」是o(nlogn)。

t 對n個記錄進行快速排序,在最壞的情況下,其時間複雜度是o(nlogn)。

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

t1-3

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

f1-4

要從50個鍵值中找出最大的3個值,選擇排序比堆排序快。

t 規模較小直接選擇排序快。

1-5對n個記錄進行快速排序,在最壞的情況下,其時間複雜度是o(nlogn)。

f最壞的情況下為o(n2)

1-6(neuds)直接插入排序演算法在最好情況下的時間複雜度為o(n)。

t1-7

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

f2-1

下列排序演算法中,哪種演算法可能出現:在最後一趟開始之前,所有的元素都不在其最終的位置上?(設待排元素個數n>2)

氣泡排序

插入排序

堆排序快速排序

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

1421

496+5+4+3+2+1=21;

2-3排序方法中,從未排序序列中依次取出元素與已排序序列中的元素進行比較,將其放入已排序序列的正確位置的方法稱為:

插入排序

選擇排序

快速排序

歸併排序

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

3645

100解析:

對於簡單選擇排序,無論最好最壞都要交換n-1次;

2-6若資料元素序列是採用下列排序方法之一得到的第一趟排序後的結果,則該排序演算法只能是:

快速排序

選擇排序

堆排序歸併排序

解析:

2-7設有1000個元素的有序序列,如果用二分插入排序再插入乙個元素,則最大比較次數是:

1000

99950010

2-9對初始狀態為遞增序列的表按遞增順序排序,最費時間的是()演算法。

快速排序

歸併排序

插入排序

堆排序2-10

對序列進行排序,進行一趟後資料的排列變為,則採用的是()排序法。快速

希爾冒泡

選擇2-11

就平均效能而言,目前最好的內排序方法是()排序法。希爾

冒泡快速

交換2-12

對序列 用希爾排序方法排序,經一趟後序列變為則該次採用的增量是()。2

1432-17

對初始資料序列進行希爾排序。若第一趟排序結果為( 1, 3, 7, 5, 2, 6, 4, 9, 11, 10, 8 ),第二趟排序結果為( 1, 2, 6, 4, 3, 7, 5, 8, 11, 10, 9 ),則兩趟排序採用的增量(間隔)依次是:

3, 1

3, 2

5, 2

5, 3

2-13

下列排序演算法中,()演算法可能會出現下面情況:在最後一趟開始之前,所有元素都不在其最終的位置上。

快速排序

堆排序氣泡排序

插入排序

2-16

資料序列只能是下列哪種排序演算法的兩趟排序結果?

氣泡排序

快速排序

插入排序

堆排序2-14

若用氣泡排序法對序列從大到小排序,需進行()次比較。25

31510解析:

需要進行5!次比較即

(5+1)*5/2=15

2-15

對於快速排序,當待排記錄有序時,每回劃分均以第乙個元素作為樞軸,如下說法正確的是:

適用於順序儲存結構,演算法時間複雜度時o(n)

適用於鏈式儲存結構,演算法時間複雜度時o(n)

適用於順序儲存結構,演算法時間複雜度時o(n^2)

適用於鏈式儲存結構,演算法時間複雜度時o(n^2)

5-1本題要求用氣泡排序將一組整數按增序排序。氣泡排序每次從頭到尾掃瞄待排序列,檢查相鄰兩數的順序,如果順序不對就交換。請補全下列氣泡排序的**。

typedef

struct node *nodeptr;

struct node

;nodeptr bubblesort (nodeptr h)

else p = p-

>next;}}

while

(flag_swap >0)

;return h;

}

p->next->value>p->next->next->value

p->next=q->next

q->next=p->next->next

p->next->next=q

5-3本題要求給出希爾排序對給定初始序列利用增量序列進行排序的分步結果。將每步結果填在下列空中。注意:相鄰數字間必須有乙個空格,開頭結尾不得有多餘空格。

原始序列 9 8 7 6 5 4 3 2 1

增量7排序後 2 1 7 6 5 4 3 9 8

增量3排序後 2 1 4 3 5 7 6 9 8

增量1排序後 1 2 3 4 5 6 7 8 9

資料結構與演算法 第七章 遞迴

7.小結 8.參考 遞迴是一種程式設計技巧,在許多資料結構和演算法中都用了遞迴進行實現,如果要學習後面相對比較複雜的資料結構與演算法,掌握遞迴非常重要。我們先來看乙個例子,比如我們在電影院看電影,想知道自己坐在第幾排,但是電影院太黑沒法自己數,於是我們問前面的人他在第幾排,但是前面的人也不知道,所以...

資料結構第七章

平衡二叉樹 基本思想 在構造二叉排序樹的過程中,每插入乙個 結點時,首先檢查是否因插入而破壞了樹的平衡性,若是,則找出最小不平衡子樹,在保持二叉排序樹特 性的前提下,調整最小不平衡子樹中各結點之間的鏈 接關係,進行相應的旋轉,使之成為新的平衡子樹 平衡二叉樹 或者是一棵空的二叉排序樹,或者是具 有下...

資料結構筆記(第七章)

線性表的查詢技術 1 順序查詢 基本思想 從線性表的一端向另一端逐個將關鍵碼與 給定值進行比較,若相等,則查詢成功,給出該記錄 在表中的位置 若整個表檢測完仍未找到與給定值相 等的關鍵碼,則查詢失敗,給出失敗資訊。順序查詢 線性查詢 int seqsearch1 int r int n,int k ...