< T extends Comparable< x が大きい場合は 0 より大きい値を返し、0 より小さい場合は 0 より小さい値を返します) import java.util.Arrays;
import java.util.Collection;public class QuickSort {
public static <T extends Comparable<T>> void myQuickSort(T[] t, int a,int b) {
if (a < b) {
int q = Partition(t, a, b);
myQuickSort(t, a, q - 1);
myQuickSort(t, q + 1, b);
}
} public static <T extends Comparable<T>> int Partition(T[] t, int a, int b) { int l = a; int r = b + 1;
T x = t[l];
while (true) { //找到比他大的或者相等的 (他比x小就继续直到找到比他大或者相等的)
while (t[++l].compareTo(x) < 0 && l < b); //找到比他小的或者相等的 (他比x大就继续直到找到比他小或者相等的)
while (t[--r].compareTo(x) > 0);
if (l >= r) {
break;
} //如果下标正常 就交换
swap(t, l, r);
} //把轴放进合适的位置,此时左边所有都比它小
t[a] = t[r];
t[r] = x;
return r;
}
//java实现swap
public static <T extends Comparable<T>> void swap(T[] data, int a, int b) {
T t = data[a];
data[a] = data[b];
data[b] = t;
}
public static void main(String[] args) {
Integer a[] = {0, 2, 2, 54, 1};
myQuickSort(a, 0, 4);
System.out.println(Arrays.toString(a));
}
}
以上がジェネリックスによる迅速なソートを実装する Java アルゴリズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。