「アルゴリズム(第4版)」並べ替え-----テンプレート
この本は並べ替えアルゴリズムに対してテンプレートを持っています.以下のいくつかの方法を含みます.
(1)sort():この方法で実現されるのは順序付けのアルゴリズムです.
(2)less():この方法はComprableインターフェースの中のcompreTo方法を利用しています.ここでcompreTo方法は、本オブジェクトと着信した比較対象に対して、以下であり、大なり、それぞれ負、0、正数を返します.
この方法は、compreToメソッドの結果が負であればtrueに戻ります.そうでなければfalseに戻ります.
(3)exch():この方法はexchangeで、交換して、使う伝統的な方法で、先にtempを探して、それから三者で交換します.
(4)show():配列内の要素を印刷する
(5)main():
テンプレートの詳細は以下の通りです
並べ替えアルゴリズムのテンプレートから入ってきたパラメータは、Comprableインターフェースを実現したデータタイプでなければなりません.これにより、直接にそれぞれのデータ比較習慣に従って並べ替えられます.
v.com mpareTo(w)<0のようなコードは、vとwが比較できない、または両方の一つにnullがあると、v.com mpareTo(w)が例外を投げます.
(1)sort():この方法で実現されるのは順序付けのアルゴリズムです.
(2)less():この方法はComprableインターフェースの中のcompreTo方法を利用しています.ここでcompreTo方法は、本オブジェクトと着信した比較対象に対して、以下であり、大なり、それぞれ負、0、正数を返します.
この方法は、compreToメソッドの結果が負であればtrueに戻ります.そうでなければfalseに戻ります.
(3)exch():この方法はexchangeで、交換して、使う伝統的な方法で、先にtempを探して、それから三者で交換します.
(4)show():配列内の要素を印刷する
(5)main():
テンプレートの詳細は以下の通りです
public class Selection {
public static <T> void sort(Comparable<T>[] a){
//
}
private static <T>boolean less(Comparable<T> v, Comparable<T> w){
return v.compareTo((T) w) < 0;
}
private static <T> void exch(Comparable<T>[] a, int i, int j){
Comparable<T> t = a[i];
a[i] = a[j];
a[j] = t;
}
private static <T> void show(Comparable<T>[] a){
//
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + "");
System.out.println();
}
}
public static <T> boolean isSorted(Comparable<T>[] a){
//
for (int i = 0; i < a.length; i++) {
if(less(a[i], a[i-1]))
return false;
}
return true;
}
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
// String[] a = {"S","O","R","T","E","X","A","M","P","L","E"};
sort(a);
assert isSorted(a);
show(a);
}
}
を観察して、並べ替えアルゴリズムのテンプレートから入ってきたパラメータは、Comprableインターフェースを実現したデータタイプでなければなりません.これにより、直接にそれぞれのデータ比較習慣に従って並べ替えられます.
v.com mpareTo(w)<0のようなコードは、vとwが比較できない、または両方の一つにnullがあると、v.com mpareTo(w)が例外を投げます.