ソートの基本は、バブルソート。
遅いですw
バブルソートのサンプル
10個の整数をシャッフル。
シャッフルしたリストをバブルソートでソートします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; public class BubbleSort { public static void main(String[] args) { //データ準備 List<Integer> sortList = IntStream.rangeClosed(1, 10) .boxed() .collect(Collectors.toList()); Collections.shuffle(sortList); System.out.println("ソート前:" + sortList); //ソート sort(sortList); System.out.println("ソート後:" + sortList); } public static void sort(List<Integer> list) { //バブルソート for(int i = 0 ; i < list.size() - 1 ; i++) { for(int j = 0 ; j < list.size() - i - 1 ; j++) { //隣同士を比較 if (list.get(j) > list.get(j + 1)) { Collections.swap(list, j, j+1); } } } } } |
実行結果
ソート前とソート後のリストが出力されます。
1 2 | ソート前:[10, 3, 1, 6, 5, 7, 2, 9, 8, 4] ソート後:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] |
サンプルの解説
バブルソートは、隣り合う2つを大小比較して、逆であれば交換です。
繰り返しのたびに、1つずつ比較する回数が減っていきますが、それでも回数は多いですね。