氣泡排序(相鄰對比)
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...