七種常用排序演算法總結

2022-09-09 11:36:12 字數 1594 閱讀 7686

1.氣泡排序(bubble sort):

package

com.zha.wmls.sort;

/*** 氣泡排序

* 每一輪找出乙個最大的,放在最後面,

* 穩定

* 時間複雜度為n^2 */

public

class

bubblesort

long befortime =system.currenttimemillis();

sort(arr);

long aftertime =system.currenttimemillis();

system.out.println(aftertime-befortime);

}

static

void sort(int

a) }

if (!flag)else}}

}

2.選擇排序(selection

package

com.zha.wmls.sort;

/*** 選擇排序

* 不穩定: 排序過後,相同資料的相對位置發生了變化(排序演算法中,相同資料不要交換)

* 每一輪只交換一次,並且是通過min判斷,自然判斷成功的次數相對更少 */

public

class

selectionsort

long befortime =system.currenttimemillis();

sort(arr);

long aftertime =system.currenttimemillis();

system.out.println(aftertime-befortime);

}static

void sort(int

a) }

if(minindex!=i)}}

}

3.插入排序(insert sort)

package

com.zha.wmls.sort;

/*** 插入排序

* 假設兩個庫,乙個為有序,乙個為無序,剛開始有序庫只有乙個,然後無序庫裡面依次比較,

* 穩定

* 時間複雜度為n^2 */

public

class

insertsort

long befortime =system.currenttimemillis();

insertsort(arr);

long aftertime =system.currenttimemillis();

system.out.println(aftertime-befortime);

}static

void insertsort(int

arr)

//比較完畢,找到這個數字應該放的位置,放入

arr[++index]=arrcurrent;}}

}

4.希爾排序

七種排序演算法總結

根據排序過程中借助的主要操作,將7種內排序演算法按照下圖所示進行分類。將7種演算法的各種指標進行對比,如下表所示。從平均情況來看,顯然最後3種改進演算法要勝過希爾排序,並遠遠勝過前3種簡單演算法。從最好情況看,反而冒泡和直接插入排序要更勝一籌,也就是說,如果待排序列總是基本有序,反而不應該考慮四種複...

七種排序演算法

排序方法 平均情況 最好情況 最壞情況 輔助空間 穩定性插入排序 o n 2 o n o n 2 o 1 穩定希爾排序 o n log n o n 2 o n 1.3 o n 2 o 1 不穩定選擇排序 o n 2 o n 2 o n 2 o 1 不穩定氣泡排序 o n 2 o n o n 2 o ...

七種排序方式總結

2018.01.23 a yuan t 其中排序演算法 氣泡排序,簡單排序,直接插入排序,希爾排序,堆排序,歸併排序,快速排序 include include include define maxsize 10000 define false 0 define true 1 typedef stru...