この記事は「
個別のアルゴリズムをつつく0−基本選択ソート。主は此処になおれ!」との連動企画ピヨ。詳しい説明はそちらを見てね。
そして、ボクの実装例を見る前に自分で実装を試みよう。
ではさっそく、つまらないものですがどーぞ♪
public class Main {
public static void main(String[] args) {
int values[] = new int[] { 9,3,5,6,2,8,7,0,1,4 };
System.out.println("整列前のデータ");
for(int i = 0; i < values.length; i++)
System.out.print(values[i] + "\t");
System.out.println("\n整列後のデータ");
int[] result = SelectionSort.sort(values);
for(int i = 0; i < result.length; i++)
System.out.print(result[i] + "\t");
}
}
class SortMan {
//要素を昇順に整列する
public static int[] sort(int values[]) {
for(int sortPoint = 0; sortPoint < values.length - 1; sortPoint++) {
int min = sortPoint;
for (int index = sortPoint + 1; index < values.length; index++) {
if( (int) values[ min ] > (int) values[ index ] )
min = index;
}
if( min != sortPoint) exchange(values, sortPoint, min);
}
return values;
}
//要素を交換する
private static void exchange( int values[], int destination, int source) {
int tmp = values[ destination ];
values[ destination ] = (int)values[ source ];
values[ source ] = tmp;
}
}
これは見ての通り
int型に固定されているからあまりいい実装とは言えないピヨ。型が固定されていないバージョンは、また今度お見せするするピヨ。
それまでの間にこのプログラムを料理しよう。