PDA

View Full Version : مشکل در quick_sort



soroushp
یک شنبه 18 اسفند 1392, 22:47 عصر
من در اجرا کد زیر به stack overflow بر می خورم :
#include <iostream>
#include<conio.h>
using namespace std;
int *a;
void quick(int a[],int p,int r);
int part(int a[],int p,int r);
void main()
{
int i,x,p,r,j;
cout<<"Enter size of array:\n";
cin>>x;
cout<<"\n";
a=new int[x];
p=a[0];
r=a[x];
cout<<"Enter your Numbers for ordering:\n";
for(i=0;i<=x;i++)
{
cin>>a[i];
}
quick(a,p,r);
for(j=0;j<=x;j++)
cout<<a[j];
delete[] a;
getch();
}

void quick(int a[],int p,int r)
{
int q;
if(p<r)
q=part(a,p,r);
quick(a,p,q-1);
quick(a,q+1,r);
}
int part(int a[],int p,int r)
{
int x,i,j;
x=a[r];
i=p-1;
for(j=p;j<=r-1;j++)
{
if(a[j]<=x)
{
i=i+1;
swap(a[i],a[j]);
}
}
swap(a[i+1],a[r]);
return i+1;
}