abdollah69
دوشنبه 26 فروردین 1392, 18:05 عصر
این برنامه جواب درست نمیده اگه میشه کمک کنین؟
#include "stdafx.h"
#include<iostream>
#include<conio.h>
using namespace std;
void mergesort(int*,int,int);
void merge(int*,int,int,int);
int main(){
int i,n;
cout<<"enter number of items:";
cin>>n;
int*A=new int [n];
cout<<"enter numbers:"<<endl;
for(i=0;i<n;i++)
cin>>A[i];
mergesort(A,0,n-1);
cout<<"\n\n"<<endl;
cout<<"mrgesort:"<<endl;
for(i=0;i<n;i++)
cout<<A[i]<<" ";
getch();
return 0;
}
void mergesort(int* A,int p,int r){
int q;
if(p<r){
q=(p+r)/2;
mergesort(A,p,q);
mergesort(A,q+1,r);
merge(A,p,q,r);
}
}
void merge(int *A,int p,int q,int r){
int n1,n2,*L,*R,i,j,k;
n1=q-p+1;
n2=r-q;
L=new int[n1+1];
R=new int[n2+1];
for(i=0;i<n1;i++){
L[i]=A[p+i];
i++;
}
for(j=0;j<n2;j++){
R[j]=A[q+j+1];
j++;
}
i=0;
j=0;
for(k=p;k<=r;k++)
if(j==n2||L[i]<=R[j]){
A[k]=L[i];
i++;
}
else{
A[k]=R[j];
j++;
}
}
#include "stdafx.h"
#include<iostream>
#include<conio.h>
using namespace std;
void mergesort(int*,int,int);
void merge(int*,int,int,int);
int main(){
int i,n;
cout<<"enter number of items:";
cin>>n;
int*A=new int [n];
cout<<"enter numbers:"<<endl;
for(i=0;i<n;i++)
cin>>A[i];
mergesort(A,0,n-1);
cout<<"\n\n"<<endl;
cout<<"mrgesort:"<<endl;
for(i=0;i<n;i++)
cout<<A[i]<<" ";
getch();
return 0;
}
void mergesort(int* A,int p,int r){
int q;
if(p<r){
q=(p+r)/2;
mergesort(A,p,q);
mergesort(A,q+1,r);
merge(A,p,q,r);
}
}
void merge(int *A,int p,int q,int r){
int n1,n2,*L,*R,i,j,k;
n1=q-p+1;
n2=r-q;
L=new int[n1+1];
R=new int[n2+1];
for(i=0;i<n1;i++){
L[i]=A[p+i];
i++;
}
for(j=0;j<n2;j++){
R[j]=A[q+j+1];
j++;
}
i=0;
j=0;
for(k=p;k<=r;k++)
if(j==n2||L[i]<=R[j]){
A[k]=L[i];
i++;
}
else{
A[k]=R[j];
j++;
}
}