當前位置:編程學習大全網 - 編程軟體 - C語言二路歸並排序算法

C語言二路歸並排序算法

寫了個二路歸並的歸並排序小代碼,直接貼上來

/*

file:quick.cpp

*/

#includeiostream

using namespace std;

void Merge(int a[],int low,int mid,int high,int b[]);

void MSort(int a[],int low,int high,int b[]);

void main()

{

int a[]={4,5,9,10,51,6,46,36,6,56,67,45,36};

int b[13];

MSort(a,0,12,b);

for(int i=0;i13;i++)

coutb[i]" ";

coutendl;

for(int j=0;j13;j++)

couta[j]" ";

coutendl;

}

void Merge(int a[],int low,int mid,int high,int b[])

{

int i=low,j=mid+1,k=low;

while((i=mid)(j=high))

{

if(a[i]=a[j])

{

b[k]=a[i];

i++;

}

else

{

b[k]=a[j];

j++;

}

k++;

}

while(i=mid)

{

a[k]=a[i];

k++;

i++;

}

while(j=high)

{

a[k]=a[j];

k++;j++;

}

}

void MSort(int a[],int low,int high,int b[])

{

if(low==high)

b[low]=a[low];

else

{

int mid=(low+high)/2;

MSort(a,low,mid,b);

MSort(a,mid+1,high,b);

Merge(a,low,mid,high,b);

}

}

  • 上一篇:成批刪除文件名中幾個特定字符的命令。
  • 下一篇:scratch怎麽做乘法分配律?
  • copyright 2024編程學習大全網