常見排序演算法 氣泡排序 快速排序

2021-10-11 13:14:32 字數 1714 閱讀 7459

常見排序演算法:

• 選擇排序

• 直接選擇排序、 堆排序

• 交換排序

• 氣泡排序、 快速排序

• 插入排序

• 直接插入排序、 折半插入排序、 shell排序

• 歸併排序

• 桶式排序

• 基數排序

輸入( input) 有0個或多個輸入資料,這些輸入必須有清楚的描述和定義

輸出( output) 至少有1個或多個輸出結果,不可以沒有輸出結果

有窮性(有限性, finiteness) 演算法在有限的步驟之後會自動結束而不會無限迴圈,並且每乙個步驟可以在可接受的時間內完成

確定性(明確性, definiteness) 演算法中的每一步都有確定的含義,不會出現二義性

可行性(有效性,effectiveness) 演算法的每一步都是清楚且可行的,能讓使用者用紙筆計算而求出答案

氣泡排序

氣泡排序演算法的運作如下:

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

public

class

bubblesort

;for

(int x = arr.length -

1; x >=

0;x--)}

}/* for(int i = 0 ; i < arr.length -2 ; i++)

}for(int i = 0 ; i < arr.length -3 ; i++)

}for(int i = 0 ; i < arr.length -4 ; i++)

}*/// 進行陣列的遍歷

for(

int j : arr)

}}

快速排序

public

class

quicksort

;quick

(arr)

;for

(int x : arr)

}//快速排序的入口 該方法針對 陣列排序 所以需要你傳遞給該方法乙個陣列

public

static

void

quick

(int

arr)

else

}// 快速排序的核心演算法

public

static

void

sort

(int

arr,

int left,

int right)

int base = arr[left]

;int i = left;

int j = right;

while

(i != j )

// 從右邊開始 依次使用右邊的元素和基準元素進行比較 直到找到比基準元素小的 元素

while

(arr[j]

> base && i < j)

if(i < j )

}sort

(arr,

0,i -1)

;sort

(arr,i +

1, right);}

}

php排序演算法 氣泡排序,快速排序

氣泡排序實現原理 首先將所有待排序的數字放入工作列表中。從列表的第乙個數字到倒數第二個數字,逐個檢查 若某一位上的數字大於他的下一位,則將它與它的下一位交換。重複步驟 直至再也不能交換。實現 複製 如下 氣泡排序 by www.jbxue.com function bubbingsort array...

經典排序演算法 氣泡排序 快速排序

氣泡排序的基本思想是,對相鄰的元素進行兩兩比較,順序相反則進行交換,這樣,每一趟會將最小或最大的元素 浮 到頂端,最終達到完全有序。特點 如果n個元素按照從小到大排序,每一輪 i 排序後,最大的元素會放到最後,後續新一輪只需要前n i個元素互相比較。題目 給出無需陣列 4,3,1,2 要求按照從小到...

排序演算法2 氣泡排序,快速排序

氣泡排序 include using namespace std void bubblesort int arry,int size void print int arry,int size void main print arry,5 bubblesort arry,5 print arry,5 ...