已知序列(25,16,32,18,20,36,12)請給出採用氣泡排序對該序列做升序排序時的每一趟結果

時間 2021-09-03 04:23:06

1樓:手機使用者

氣泡排序的過程很簡單,將第一個記錄的關鍵字與第二個進行比較,若為逆序排列(l.r[1].key>l.

r[2].key),就交換,然後比較第二個記錄與第三個……依次類推,直至第n-1個記錄和n個記錄的關鍵字進行過比較為止。此過程做第一趟氣泡排序,結果是關鍵字最大的記錄被安置到最後一個記錄位置。

然後第二趟,……整個過程需要k(1<=k

15 18 60 41 6 32 83 75 95 初始關鍵字

15 18 41 6 32 60 75 83 第一趟排序後

15 18 6 32 41 60 75 第二趟排序後

15 6 18 32 41 60 第三趟排序後

6 15 18 32 41 第四趟排序後

6 15 18 32 第五趟排序後

第五趟無交換,冒泡停止。

2樓:匿名使用者

#include

#define n (sizeof(a) / sizeof(*a))void display(int a, int n);

int main() ;

int i, j;

printf("original:\n");

display(a, n);

printf("sorted:\n");

for (i = 0; i + 1 < n; ++i)}display(a, n);

}system("pause");

return 0;

}void display(int a, int n)printf("\n");}

3樓:匿名使用者

0:25,16,32,18,20,36,121:16,25,18,20,32,12,362:

16,18,20,25,12,32,363:16,18,20,12,25,32,364:16,18,12,20,25,32,365:

16,12,18,20,25,32,366:12,16,18,20,25,32,36

已知序列{8,7,4,6,5,2,3,1,9}.試用氣泡排序法對序列進行排序,並寫出中間過程。

4樓:

已知序列{8,7,4,6,5,2,3,1,9},氣泡排序法對序列進行從小到大排序過程為:

{8,7,4,6,5,2,3,1,9}

={7,4,6,5,2,3,1,8,9}

={4,6,5,2,3,1,7,8,9}

={4,5,2,3,1,6,7,8,9}

={4,2,3,1,5,6,7,8,9}

={2,3,1,4,5,6,7,8,9}

={2,1,3,4,5,6,7,8,9}

={1,2,3,4,5,6,7,8,9}

5樓:妖

874652319 746523189 465231789 462315789 423156789 231456789 213456789 123456789(這是從小到大,你也可以從大到小)

資料結構中常見的排序方式都有哪些?比如氣泡排序,快速排序等。每種排序具體是怎麼排的?

6樓:匿名使用者

1.直接插入:就是有一個已經排好的子序列,它是有序的。

然後來一個插入一個仍是這個序列有序。比如a1本身就是有序的。a2來了,要和a1比較,a2大就插在a1之後,小就在a1之前,那麼a1、a2就是新的有序子序列,然後a3來了,又要插入進來,逐個與a2、a1比較插在它的適當位置再次形成子序列,就按這樣一步步進行,知道最後一個插入時,以前的都已經有序了。

2.希爾排序:由於有時候資料量大,用直接插入就不太合適。

於是把你的一組待排序資料按如8、4、2、1的一組增量數來分組,即第一次,a1和a9和a17甚至還有更多間隔為八的數分為一組進行直接插入排序,第二次則是新的a1和a5、a9、a13……依次知道最後比較資料之間的間隔數為1,每次都進行插入排序

3.直接選擇:n個數逐個比較,誰大的誰放最後(n的位置),比較範圍減一;然後又從n-1個數中找最大的,又放最後(n-1的位置),依次這樣進行就可以。

4.冒泡:比較的時候如果前者比後者大就要進行值的交換。那麼最大的每次都會沉到底下。比較範圍減一。

5、快速排序:要採用分劃控制。比較複雜。

資料結構題已知序列(10,18,4,3,6,12,1,9,8),請用快速排序寫出每一趟排序的結果

時間按快點 8,9,4,3,6,1 10,12,18,18 1,6,4,3 8,9 10,12,18,18 1,3,4,6 8,9,10,12,18,18 1,3,4,6 8,9,10,12,18,181,3,4,6,8,9,10,12,18,18以上為快速排序的分割槽處理,選擇一個數10,第一次吧...

已知二叉樹後序遍歷序列是dabec,中序遍歷序列debac

左清安賽辛 中序遍歷 debac 後序遍歷 dabec 推導如下 1 從後序可知樹根為c,因為最後的節點是樹根。2 從中序的規則可知樹根在中間,樹根的左邊是左孩子,右邊是右孩子。很明顯樹根c是沒有右孩子,只有左孩子deba。中序遍歷 deba 後序遍歷 dabe 推出e是左子樹的根結點,並且存在左子...

已知二叉樹後序遍歷序列是dabec,中序遍歷序列是debac

第六位面壁者 選d首先看後續遍歷,最後的c是二叉樹的根節點,然後看中序遍歷,最後一個又是c,所以這個二叉樹根節點沒有右子樹。c的位置得到後,再看後續遍歷,e在c前面,所以e是c的左孩子節點,e的位置得到。然後再看中序遍歷,e前面只有一個d,所以d是e的左孩子節點,d的位置得到 剩下的b和a就在e的右...