public class QuickSort {
Dividing an array
public static int partition (int[] array, int. left,int Right,int Point)
{
int leftptr = left-1;
int rightptr = right;
while (true)
{
Right Shift Left
while (Leftptr<rightptr && array[++leftptr] < point);
Left shift Right
while (Leftptr < rightptr && array[--rightptr]>point);
if (leftptr >= rightptr)
Break
Else
{
int tmp = ARRAY[LEFTPTR];
ARRAY[LEFTPTR] = array[rightptr];
ARRAY[RIGHTPTR] = tmp;
}
}
Switches the keyword to the current point
int tmp = ARRAY[LEFTPTR];
ARRAY[LEFTPTR] = Array[right];
Array[right] = tmp;
return leftptr;
}
Quick Sort
public static void sort (int[] array, int. Left,int right)
{
if (left >= right)
Return
Set keywords
int point = Array[right];
Get pointcuts, divide arrays
int partion = partition (array, left, right, point);
To make a quick row of the left sub-array
Sort (array, left,partion-1);
Right array quick row
Sort (array, partion+1, right);
}
public static void display (int[] array)
{
System.out.print ("[");
Advanced usage of the for (int num:array)//for
{
System.out.print (num+ "");
}
System.out.print ("]");
System.out.println ();
}
}
16. Quick Sort