necesito un programa que utilice quick sort

karinna
10 de Mayo del 2004
necesito un programa me urge que utilice qui sort

noel solw
10 de Mayo del 2004
esta en este foro, pero te lo envio de nuevo :

// program k4_14.CPP - page 76
// quick sort by C. A. R. Hoare.
// c++ exercices book - dr. gershon kagan (first edition : 2001)
// written in Borland CPP ver 3.1

#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>

#define MAX 18
#define MAX_DIGIT 3

void Show(int *a)
{
for(int i = 0; i < MAX; i++)
cout << setw(4) << a[i];
cout << endl;
} // SHOW

void Init(int *a)
{
for(int i = 0; i < MAX; i++)
a[i] = random(100);
} // INIT

void Swap(int &a,int &b)
{
int c = a;
a = b;
b = c;
} // SWAPS INTEGER

int ReArrange(int *a,int down,int up)
{
int p = down;
while(up != down)
{
while(up > down && a[up] >= a[p])
up--;
if(up != down)
{
Swap(a[up],a[down]);
p = up;
while(down < up && a[down] <= a[up])
down++;
if(down != up)
Swap(a[down],a[up]);
p = down;
}
}
return p;
} // REARRANGE

void QuickSort(int *a,int down,int up)
{
if(down < up)
{
int p = ReArrange(a,down,up);
QuickSort(a,down,p-1);
QuickSort(a,p+1,up);
}
} // QUICK SORT

void main()
{
clrscr();
randomize();
int a[MAX];
cout << "quick sort, by C. A. R. Hoare : " << endl << endl;
Init(a);
Show(a);
cout << endl;
QuickSort(a,0,MAX-1);
Show(a);
cout << endl << "end of program - good bye ! ! !n";
getch();
} // MAIN