1. 程式人生 > >幾種常見的排序演算法

幾種常見的排序演算法

1、排序演算法的分類

(1)交換排序:氣泡排序、快速排序

(2)選擇排序:簡單選擇排序、堆排序

(3)插入排序:直接插入排序、希爾排序

(4)歸併排序:二路歸併排序

注意這裡預設都是升序排列,下面給出swap的函式

public void swap(int[] array,int m,int n) {
int temp=0;
temp=array[m];
array[m]=array[n];
array[n]=temp;
}

2. 交換排序的程式碼

(1)氣泡排序

      每一趟將待排序序列中最大元素移到最後,剩下的為新的待排序序列,重複上述步驟直到排完所有元素。


(2)快速排序

     在分割槽中選擇一個元素作為軸值,將待排序元素劃分成兩個分割槽,使得左側元素的關鍵碼均小於或等於軸值,右側元素的關鍵碼均大於或等於軸值,然後分別對這兩個分割槽重複上述過程,直到整個序列有序。


3. 選擇排序程式碼

(1)簡單選擇排序

   每一趟從待排序序列選擇一個最小的元素放到已排好序序列的末尾,剩下的位待排序序列,重複上述步驟直到完成排序。


4.插入排序

(1)直接插入排序

   將陣列分為兩部分,將後部分元素逐一與前部分元素比較,如果當前元素array[i]小,就替換。找到合理位置插入array[i]


5.歸併排序

(1)二路歸併排序