38 lines
914 B
Java
38 lines
914 B
Java
package Sorting;
|
|
|
|
public class QuickSorter extends Sorter{
|
|
|
|
public QuickSorter(String filename){
|
|
super("quick sort", filename);
|
|
}
|
|
|
|
public QuickSorter(String qsortVariant, String filename){
|
|
super(qsortVariant, filename);
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
} |