necesito un programa que utilice quick sort
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
// 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
