home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 June
/
SIMTEL_0692.cdr
/
msdos
/
microcrn
/
issue_40.arc
/
C-REVIEW.ARC
/
SORT.C
< prev
Wrap
C/C++ Source or Header
|
1987-09-23
|
1KB
|
63 lines
/*
Program: Sort
Version: 1.00
Date: September 12, 1987
Sort a reverse order array of numbers using QuickSort. A general test
for C compilers.
*/
#define MAXITEMS 20000
int test[MAXITEMS];
void quicksort(int *,int);
void qs(int *,int,int);
main()
{
int i, j;
for (i = 0; i < MAXITEMS; ++i)
test[i] = MAXITEMS - i - 1;
quicksort(test,MAXITEMS);
}
void quicksort(item,count)
int *item;
int count;
{
qs(item,0,count-1);
}
void qs(item,left,right)
int *item;
int left, right;
{
register int i, j;
int x, y;
i = left;
j = right;
x = item[(i+j)/2];
do
{
while (item[i] < x && i < right) i++;
while (x < item[j] && j > left) j--;
if (i <= j)
{
y = item[i];
item[i] = item[j];
item[j] = y;
i++;
j--;
}
}
while (i <= j);
if (left < j) qs(item,left,j);
if (i < right) qs(item,i,right);
}