Program 1
# Include "stdio. H"
# Include "conio. H"
Void quick_sort (int * a, int left, int right );
Main ()
{
Int I, j, temp;
Int A [10] = {30, 50, 40, 10, 60, 70, 80, 20, 27,11 };
For (I = 0; I <10; I ++)
Printf ("% d", a [I]);
Printf ("/N ");
Quick_sort (A, 0, 9 );
For (I = 0; I <10; I ++)
Printf ("% d", a [I]);
Printf ("/N ");
Getch ();
}
Void quick_sort (int * a, int left, int right)
{
Int low, upper, point;
Int T;
If (left <right)
{
Point = A [left];
Low = left;
Upper = right + 1;
While (1)
{
While (A [++ low] <point );
While (A [-- upper]> point );
If (low> = upper)
Break;
T = A [low]; A [low] = A [upper]; A [upper] = T;
}
A [left] = A [upper];
A [upper] = point;
Quick_sort (A, left, upper-1 );
Quick_sort (A, upper + 1, right );
}
}
Program 2
Int A [10000];
Int partion (INT Lo, int hi)
{
A [0] = A [lo];
While (Lo {
While (Lo <Hi & A [HI]> = A [0]) hi --;
A [lo] = A [HI];
While (Lo <Hi & A [lo] <= A [0]) Lo ++;
A [HI] = A [lo];
}
A [lo] = A [0];
Return lo;
}
Void qsort (int I, Int J)
{
Int K;
If (I <j)
{
K = partion (I, j );
Qsort (I, k-1 );
Qsort (k + 1, J );
}
}
This is a data structure book.
Program 3
Void swap (INT left, int right)
{
Char * temp;
Temp = array [left];
Array [left] = array [right];
Array [right] = temp;
}
Void qsort (INT left, int right)
{
Int Pos;
Int last;
Int loop;
If (left <right)
{
Last = left;
For (loop = left + 1; loop <= right; loop ++)
If (array [loop] <array [left])
Swap (loop, ++ last );
Swap (left, last );
Qsort (left, last-1 );
Qsort (last + 1, right );
}
}