各種排序的C 實現

2021-06-18 04:25:48 字數 981 閱讀 1673

#includeusing namespace std;

//直接順序排序

void insertsort(int r, int n)

} for(int i=0;ir[j]) break; //根結點已經大於左右孩子中的較大者

else

}}//堆排序

void heapsort(int r[ ], int n)

for(i=0;icout

}//一次歸併

void merge(int r, int r1, int s, int m, int t)

if (i<=m)

while (i<=m) //若第乙個子串行沒處理完,則進行收尾處理

r1[k++]=r[i++];

else

while (j<=t) //若第二個子串行沒處理完,則進行收尾處理

r1[k++]=r[j++];

}//一趟歸併

void mergepass(int r[ ], int r1[ ], int n, int h)

if (imerge(r, r1, i, i+h-1, n); //待歸併序列中有乙個長度小於h

else for (k=i; k<=n; k++) //待歸併序列中只剩乙個子串行

r1[k]=r[k];

}//歸併排序的非遞迴演算法

void mergesort1(int r[ ], int r1[ ], int n )

for(i=0;icout

}//歸併排序的遞迴演算法

void mergesort2(int r, int r1, int r2,int s, int t)

else

}

各種排序演算法的C 實現

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

各種排序演算法的C 實現

最近有空,寫了常見的幾種排序演算法的c 實現,包括改進版本的氣泡排序,簡單選擇排序,直接插入排序,快速排序,堆排序。1 改進版本的氣泡排序 改進版本的氣泡排序 void swapdata vector l,int i,int j void sortdata vector l,int length i...

各種排序演算法C 實現

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