各種排序演算法的實現

2021-05-24 22:23:51 字數 698 閱讀 1592

各種排序演算法的實現

1.快速排序

void swap(int &a,int &b)

int partion(int a,int p,int r)

a[p]=a[j];

a[j]=x;

return j;

}void quick_sort(int a,int p,int r)

a[s]=rc;

}//heap_adjust

void heap_sort(int a,int start,int end)

}//heap_sort

3.插入排序

void insert_sort(int a,int start,int end)

}4.合併排序

void merge(int a, int b, int st, int mid, int fi)

if(i<=mid)

memcpy(b+l,a+i,(mid-i+1)*sizeof(int));

else

memcpy(b+l,a+j,(fi-j+1)*sizeof(int));

}void copyback(int array, int b, int st, int fi)

‍void mergesort(int array, int start, int end)

{//合併排序

if(start

各種排序演算法的實現

排序演算法在很多面試中都會涉及到,而且還分為很多種,看得眼花繚亂的,這兒我就先說說幾個較簡單的演算法的實現 本來是想把各種排序方法寫在乙個函式裡可供選擇使用的,但是想著還是把每種演算法直觀的說清楚最好,故分開實現。1 插入排序 插入排序可以聯想到玩撲克牌,當你手上有若干張排好序的牌,又拿起一張新的牌...

各種排序演算法的實現

排序演算法總結 關於演算法的不穩定性不是很理解,需要進一步加強。很形象 int a n int b n int c n 插入排序 void insert sort int arr arr j 1 key 將key移動到前邊沒有比key大的值得位置上 print arr arr 6 9 2 1 69 ...

各種排序演算法的實現

用隨機函式生成16個2位正整數 10 99 實現插入排序 選擇排序 氣泡排序 雙向冒泡 快速排序 二路歸併排序等多種排序演算法,輸出排序中間過程 統計關鍵字的比較次數和記錄的移動次數。用隨機函式生成16個2位正整數 10 99 實現插入排序 選擇排序 氣泡排序 雙向冒泡 快速排序 二路歸併排序等多種...