C 實現排序演算法合集

2021-08-06 05:38:43 字數 642 閱讀 9603

氣泡排序(相鄰對比)

template

void bubblesort(elementtype arr, int n) }

}}選擇排序(每次選出最大數從後往前排)

template

void selectsort(elementtype a, int n) }

tmp = a[n-1-i];

a[n-1-i] = a[maxindex];

a[maxindex] = tmp; }

}插入排序(第n個數與前n-1個數比較,所以從1號位開始)

template

void insertionsort(elementtype a, int n)

a[j] = tmp; }

}快速排序

template

void quicksort(elementtype a, int l, int r)

if(i < j)

while(i < j && a[i]

< x)

if(i < j)

a[i] = x;

quicksort(a, l, i -1);

quicksort(a, i+1, r); }

}後續會繼續解析各個演算法的邏輯和時間複雜度的計算。

排序演算法合集(C 實現)

排序操作在程式設計中是非常基礎和常見的,也是演算法的基礎部分,我對幾種常見的比較排序演算法進行了整理。思想 遍歷陣列,每次遍歷都在未排序的部分找到最小元素的下標,在此次遍歷結束後將最小元素放到遍歷開始的位置。效能 時間複雜度為o n2 演算法比較次數與初始序列狀態無關,效能在所有排序演算法中最差。v...

排序演算法合集

每次排序將排序範圍內最小的值調換位置到最前面.雙指標的應用 include include using namespace std void bubblesort vector s int main bubblesort s for int i 0 i int s.size i cout 優化 當待...

排序演算法合集(Java)

public static void bubblesort int a 氣泡排序的時間複雜度為o n 2 是穩定的演算法 2.快速排序 public static void quicksort int a,int l,int r a i x quicksort a,l,i 1 quicksort a...