各種排序演算法的C 實現

2021-08-25 08:13:51 字數 1650 閱讀 7337

最近有空,寫了常見的幾種排序演算法的c++實現,包括改進版本的氣泡排序,簡單選擇排序,直接插入排序,快速排序,堆排序。

1 改進版本的氣泡排序:

//改進版本的氣泡排序;

void swapdata(vector

& l,int i,int j)

void sortdata(vector

& l,int length)}}

}int main()

; int length = l.size();

sortdata(l,length);

for (int i=0;icout

<2 簡單選擇排序:

//簡單選擇排序;

void swapdata(vector

& l,int i,int j)

void selectsort(vector

& l,int length)

swapdata(l,minvalue,i);

}}int main()

; int length = l.size();

selectsort(l,length);

for (int i=0;icout

<3 直接插入排序:

//直接插入排序;

void swapdata(vector

& l,int i,int j)

void insertsort(vector

& l,int length)

l[j+1] = temp;}}

}int main()

; int length = l.size();

insertsort(l,length);

for (int i=0;icout

<4 快速排序:

//快速排序;

void swapdata(vector

& l,int i,int j)

int partion(vector

& l,int low,int high)

void qsort(vector

& l, int low, int high)

}void quicksort(vector

& l,int length)

int main()

; int length = l.size();

quicksort(l,length);

for (int i=0;icout

<5 堆排序:

//堆排序(排序出錯,把整棵樹畫出來分析,找到錯誤原因);

void swapdata(vector

& l,int i,int j)

void hsort(vector

& l, int i, int length)

l[i] = temp;

}void heapsort(vector

& l, int length)

}int main()

; int length = l.size();

l.insert(l.begin(),0);

heapsort(l,length);

for (int i=1;i<=length;++i)

cout

<}

各種排序演算法C 實現

各種排序演算法的實現 交換函式 void swap int list,int low,int high 小於函式 bool lt const int low,const int high 插入排序 穩定 原理 插入排序逐個處理待排序的記錄。每個新記錄與前面已排序的子串行進行比較,將它插入到子串行中正...

各種排序演算法C 實現

include include include using namespace std 插入排序 void insertsort int num,int len 氣泡排序 void bubblesort int num,int len if flag break 選擇排序 void selectso...

各種排序演算法的C 實現

include include include include include include using namespace std void bubble vector a 氣泡排序 void insert vector a 插入排序 void shellsort vector a 希爾排序 i...