QUICKSOFT - SẮP XẾP NHANH
SỬ DỤNG PHÂN HOẠCH
SỬ DỤNG PHÂN HOẠCH
• Thuật toán
- Code:
void Phan_hoach(int *a, int L, int R, int &pos)
{
int i,j;
i=L,j=R;
pos=L;
while(i<=j)
{
while(a[j]>a[pos]&&j>=L) j=j-1;
while(a[i]<=a[pos]&&i<=R) i=i+1;
if(i<j)
{
tam=a[i];
a[i]=a[j];
a[j]=tam;
i++,j--;
}
}
tam=a[L];
a[L]=a[j];
a[j]=tam;
pos=j;
}
void Quick_sort(int *a,int L, int R)
{
int pos;
if(L<R)
{
phan_hoach(a,L,R,pos); //gọi thuật toán phan_hoach
Quick_sort(a,L,pos-1); //gọi đệ qui cho nửa <MPos
Quick_sort(a,pos+1,R); //gọi đệ qui cho nửa MPos
}
}