常見的排序演算法總結

2021-10-19 08:19:02 字數 3432 閱讀 1304

氣泡排序最常見版:

void

bubblesort

(int

* array, size_t len)}}

}int

main()

;bubblesort

(array,6)

;for

(size_t i =

0; i <

6; i++

) cout << endl;

}

void

bubblesort

(int

* array, size_t len)}}

}int

main()

;bubblesort

(array,6)

;for

(size_t i =

0; i <

6; i++

) cout << endl;

}

完整版,避免了只有已經有序的情況下,演算法仍然執行。參考大話資料結構382頁。

簡單選擇排序:

void

selectsort

(int

* array, size_t len)}if

(i != min)}}

intmain()

;selectsort

(array,6)

;for

(size_t i =

0; i <

6; i++

) cout << endl;

}

演算法思想:

直接插入排序:

希爾排序:

#include

using

namespace std;

void

shellsort

(int

* array,

int len)

array[j + increment]

= array[0]

;// array[i] = array[i - increment];

// array[i - increment] = array[0]; }}

}while

(increment >1)

;}intmain()

;shellsort

(array,9)

;for

(size_t i =

0; i <

10; i++

) cout << endl;

}

參考資料,大話資料結構:392

堆排序:

歸併排序:

#include

using

namespace std;

#define maxsize 10

void

merge

(int

* sr,

int* tr,

int i,

int m,

int n)

else}if

(i <= m)}if

(j <= n)}}

void

msort

(int

* sr,

int* tr1,

int s,

int t)

else

}void

mergesort

(int

* array,

int len)

intmain()

;mergesort

(array,10)

;for

(size_t i =

0; i <

10; i++

) cout << endl;

}

非遞迴:待實現 大話資料結構:416

快速排序:

#include

using

namespace std;

#define maxsize 10

intpartition

(int

* array,

int low,

int high)

array[low]

= array[high]

;while

(low < high && array[low]

<= pivotkey)

array[high]

= array[low];}

array[low]

= pivotkey;

return low;

}void

qsort

(int

* array,

int low,

int high)

}void

quicksort

(int

* array,

int len)

intmain()

;quicksort

(array,10)

;for

(size_t i =

0; i <

10; i++

) cout << endl;

}

參考資料:大話資料結構419

常見的排序演算法總結

include 演算法只是比較了元素為整數的內容.大部分的排序只是做了簡單的測試.僅供參考.void swap int a int b bool less int a,int b 對內部中的元素先找到k值,然後分兩塊 int partition int r,int lo,int hi while j...

常見的排序演算法總結

平時一直做專案,業務邏輯,對演算法這塊逐漸有了生疏 今天有空總結一下排序演算法 1 氣泡排序 氣泡排序的原理就是兩兩相比,從小到大的話前面比後面大就交換,從大到大的話前面比後面小就交換,比如有一組數 1,10,5,3,2 如何對它做排序 比如從小到大 第一步 1,10,5,3,2 源資料 1,10,...

常見的排序演算法總結

1.氣泡排序 就像冒泡一樣,從頭對比相鄰的兩個,大的 或者小的 就交換到後面,一直到序列有序。時間複雜度最壞,平均o n 2 最好的時候是初始序列有序,第一趟後就不在發生交換,停止排序時間複雜度o n 空間複雜度為o 1 a 11 2,41 7,22 80,67 1,0.1,88 def bubbl...