merge.cpp

来自「mergeeee sortttttt using divide and conq」· C++ 代码 · 共 48 行

CPP
48
字号
#include<iostream.h>
#include<conio.h>
int a[500];
void mergesort(int a[],int l,int u);
void merge(int a[],int l1,int u1,int l2,int u2);
void main()
{
int z;
clrscr();
cout<<"\n enter the no. of elements";
cin>>z;
cout<<"\n enter the elemnts";
for(int u=0;u<z;u++)
cin>>a[u];
mergesort(a,0,4);
for(int h=0;h<z;h++)
cout<<"\n"<<a[h];
getch();
}
void mergesort(int a[],int l,int u)
{
int m;
if(u>l)
{
m=(l+u)/2;
mergesort(a,l,m);
mergesort(a,m+1,u);
merge(a,l,m,m+1,u) ;
}
}
void merge(int a[],int l1,int u1,int l2,int u2)
{
int p,q,j,n;
int d[100];
p=l1;
q=l2;
n=0;
while((p<=u1)&&(q<=u2))
d[n++]=(a[p]<a[q])?a[p++]:a[q++];
while(p<=u1)
d[n++]=a[p++];
while(q<=u2)
d[n++]=a[q++];
for(q=l1,n=0;q<=u1;q++,n++)
a[q]=d[n];
for(q=l2,j=n;q<=u2;q++,j++)
a[q]=d[j];
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?