Files
Tutoring-APCompSci/Sorting/QuickSorter.java

38 lines
944 B
Java

package Sorting;
public class QuickSorter extends NumberSorter{
public QuickSorter(RandomNumberFileReader reader){
super("quick sort", reader);
}
public QuickSorter(String qsortVariant, RandomNumberFileReader reader){
super(qsortVariant, reader);
}
void sort(){
quickSort(0,numbers.length-1);
}
void quickSort(int lowIndex, int highIndex){
if(compare(lowIndex,highIndex)<0){
int pivot = partition(lowIndex, highIndex);
quickSort(lowIndex, pivot-1);
quickSort(pivot+1, highIndex);
}
}
private int partition(int lowIndex, int highIndex){
int pivot = numbers[highIndex];
int i = lowIndex-1;
for(int j=lowIndex;j<highIndex;j++){
if(compare(numbers[j],pivot)<0){
i++;
swap(i,j);
}
}
swap(i+1, highIndex);
return i+1;
}
}