快速排序 氣泡排序 交換類排序 講解

2021-10-01 22:26:48 字數 633 閱讀 1176

每一趟排序選擇當前序列中的第乙個關鍵字(通常是第乙個)作為樞紐,而快速排序要做的就是把比樞紐小的關鍵字交換到樞紐前面,比樞紐大的關鍵字交換到樞紐後面。本趟排序完後會生成新的子串行,而子串行會成為下一趟排序的初始序列。(通過例子來講明快速排序的規則)

總結而言就是:首為樞紐,左i右j,先j後i,j從右向左,找小的,i從左向右,找大的。

快速排序時間複雜度最好為o(n),最壞為o(n2 ),平均時間複雜度為o(n2 )。

快速排序空間複雜度為o(1)。

對原始序列進行排序,第乙個關鍵字和第二個關鍵字比較,如果第乙個大,則二者交換,否則不交換;第二個關鍵字和第三個關鍵字比較,如果第二個大,則二者交換,否則不交換……(依次類推交換下去),最後最大的關鍵字被交換到了最後面。這是第一趟排序,經過多趟這樣的排序,整個序列就會變成從小到大的有序序列,公升序。(或者採用把最小的關鍵字換到最後的方法,這樣最後就會變成從大到小的有序序列,降序)。

氣泡排序演算法結束的條件是在一趟排序中沒有發生關鍵字的交換。

c 交換類排序演算法(氣泡排序 快速排序)

氣泡排序 bubble sort 也是一種簡單直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。演算法步驟...

交換排序 氣泡排序,快速排序

交換排序 氣泡排序,快速排序 執行環境 vs2010 include include include include define ok 1 define true 1 define false 0 define maxsize 50 typedef struct redtype typedef s...

交換排序(快速排序 氣泡排序)

1.快速排序 先從數列中取出乙個數作為基準數 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊 再對左右區間重複第二步,直到各區間只有乙個數。以乙個陣列作為示例,取區間第乙個數為基準數。0 1 2 3 4 5 6 7 8 9 72 6 57 88 60 42 83 73 4...