#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 插入排序 穩定 原理 插入排序逐個處理待排序的記錄。每個新記錄與前面已排序的子串行進行比較,將它插入到子串行中正...