public class QuickSort {
public static <T extends Comparable<T>> void quickSort(T[] arr, int n){
long startTime = System.currentTimeMillis();
__quickSort(arr, 0, n-1);
long finalTime = System.currentTimeMillis();
System.out.println("Quick Sort time is: " + (finalTime-startTime));
}
//对arr[l...r]进行快排
private static<T extends Comparable<T>> void __quickSort(T[] arr, int l, int r) {
if(l >= r)
return;
int p = __partition(arr, l, r);
__quickSort(arr, l, p-1);
__quickSort(arr, p+1, r);
}
//对arr[l...r]进行partition操作
//返回p,使arr[l...p-1]<arr[p];arr[p+1...r]>arr[p];
private static<T extends Comparable<T>> int __partition(T[] arr, int l, int r) {
T v = arr[l];
int j = l;
for(int i=l+1; i<=r; i++){
if(arr[i].compareTo(v) < 0){
T temp = arr[j+1];
arr[j+1] = arr[i];
arr[i] = temp;
j++;
}
}
T temp = arr[l];
arr[l] = arr[j];
arr[j] = temp;
return j;
}
}
快速排序
最新推荐文章于 2025-12-27 15:45:53 发布
58万+

被折叠的 条评论
为什么被折叠?



