
302
8
章
テンプレートメソッドを使ってソートする
public static void sort(Object[] a) {
Object[] aux = (Object[])a.clone();
mergeSort(aux, a, 0, a.length, 0);
}
private static void mergeSort(Object[] src, Object[] dest,
int low, int high, int off)
{
//
ここに他の多くのコードが入る
for (int i=low; i<high; i++){
for (int j=i; j>low &&
((Comparable)dest[j-1]).compareTo((Comparable)dest[j])>0; j--)
{
swap(dest, j, j-1);
}
}
//
ここに他の多くのコードが入る
}
配列に対してよく行われる処理とは何でしょうか?
それは
ソートです!
Java
の配列クラスの設計者はそのことを理解していたので、
ソートのための便利なテンプレートメソッドを用意してくれてい
ます。このメソッドがどのように動作するかを調べましょう。
テンプレートメソッドを使ってソートする
ここには実際には
2
つのメソッドがあります。協調して
ソート処理を行います。
compareTo()
は、テンプレートメ
ソッドを「完成」させるために実装
しなければならないメソッドです。
すでに
Arrays
クラスで定義済みの具象 ...