jannatmakan
دوشنبه 06 آذر 1391, 22:45 عصر
اگر کسی همین الان online هست . لطفاً بگه این کد چرا درست عمل نمی کنه؟ ممنون
#include<iostream>
#include<algorithm>
#include<conio.h>
using namespace std;
int merge(int arr[],int n,int mid,int m)
{
int *temp;
temp=new int [m];
int i=n,j=mid+1,k=0;
while(i<mid && j<m)
{
if(arr[i]<arr[j])
temp[k++]=arr[i++];
else
temp[k++]=arr[j++];
}
while(i<mid)
temp[k++]=arr[i++];
while(j<m)
temp[k++]=arr[j++];
for(i=0;i<m;i++)
arr[i]=temp[i];
return 0;
}
int mergesort(int list[],int start,int end)
{
int mid;
if(start>=end)
return 0;
else
{
mid=(start+end)/2;
mergesort(list,start,mid);
mergesort(list,mid+1,end);
merge(list,start,mid,end);
}
return 0;
}
int main()
{
int *arr;
int n,i;
cout<<"Enter lenght of array:";
cin>>n;
arr=new int[n];
for(i=0;i<n;i++)
{
cout<<"Element[ "<<i<<" ]:";
cin>>arr[i];
}
mergesort(arr,0,n);
for(i=0;i<n;i++)
cout<<"\nElement[ "<<i<<" ]:"<<arr[i];
getch();////////////////////
return 0;
}
#include<iostream>
#include<algorithm>
#include<conio.h>
using namespace std;
int merge(int arr[],int n,int mid,int m)
{
int *temp;
temp=new int [m];
int i=n,j=mid+1,k=0;
while(i<mid && j<m)
{
if(arr[i]<arr[j])
temp[k++]=arr[i++];
else
temp[k++]=arr[j++];
}
while(i<mid)
temp[k++]=arr[i++];
while(j<m)
temp[k++]=arr[j++];
for(i=0;i<m;i++)
arr[i]=temp[i];
return 0;
}
int mergesort(int list[],int start,int end)
{
int mid;
if(start>=end)
return 0;
else
{
mid=(start+end)/2;
mergesort(list,start,mid);
mergesort(list,mid+1,end);
merge(list,start,mid,end);
}
return 0;
}
int main()
{
int *arr;
int n,i;
cout<<"Enter lenght of array:";
cin>>n;
arr=new int[n];
for(i=0;i<n;i++)
{
cout<<"Element[ "<<i<<" ]:";
cin>>arr[i];
}
mergesort(arr,0,n);
for(i=0;i<n;i++)
cout<<"\nElement[ "<<i<<" ]:"<<arr[i];
getch();////////////////////
return 0;
}