資源簡介
這是關于歸并排序算法用C語言實現的代碼,是經過測試正確的,希望能對大家的學習有所幫助。
代碼片段和文件信息
#include?
#include?
#include??
#define?N?10
int?a[N]b[N];
/*a[N]是一個全局數組,它含有兩個放在a[low]到a[mid]和a[mid+1]到a[high]中
*的已分類的子集合,目標時將這兩個已分類的集合歸并成一個集合,并放在a[N]中
*使用一個輔助數組b[N]
*/
void?MERGE(int?lowint?midint?high);?//函數聲明
void?MERGESORT(int?lowint?high)
{???
????if(low ????{
????????int?mid?=?(int)((low+high)/2);?//求這個集合的分割點
????????MERGESORT(lowmid);??????????//將一個子集合分類
????????MERGESORT(mid+1high);???????//將另一個子集合分類
????????MERGE(lowmidhigh);?????????//歸并兩個已分類的子集合
????}????
}
void?MERGE(int?lowint?midint?high)
{???//low<=mid ????int?hijk;
????h=low;
????i=low;
????j=mid+1;
????while(h<=mid&&j<=high)//當兩個集合都沒有取盡時
????{
????????if(a[h]<=a[j])
????????{
????????????b[i]=a[h];
????????????h=h+1;
????????}
????????
評論
共有 條評論