0

補足:

ArrayList ではなく、Array クラスを使用してこれを行いたいと考えています。

String 配列内の String は、適切な辞書順 (アルファベット順) で既に編成されていると想定できます。

例えば:

配列の場合 -> String[] list = {"ベーコン","チーズ","ミルク","パンケーキ","ヨーグルト"};

そして、文字列「OJ」をミックスに追加すると、次のようになります。

{"ベーコン","チーズ","牛乳","OJ","パンケーキ","ヨーグルト"}

前もって感謝します!

4

3 に答える 3

0

挿入ソートの簡単な方法:

public class InsertionSort {

    public static void main(String[] args) {
        String[] list = {"Bacon", "Cheese", "Milk", "Pancake", "Yogurt", "OJ"};

        InsertionSort in = new InsertionSort();
        list = in.insertSort(list);

        for (String str : list) {
            System.out.println(str);
        }
    }

    public String[] insertSort(String[] list) {
        for (int i = 1; i < list.length; i++) {
            String val = list[i];
            int value = list[i].toLowerCase().charAt(0);
            int j = i - 1;
            while (j >= 0 && list[j].toLowerCase().charAt(0) > value) {
                list[j + 1] = list[j];
                j = j - 1;
            }
            list[j + 1] = val;
        }

        return list;
    }
}

ここから取得したアルゴリズム:

public static void insertSort(int[] A){
  for(int i = 1; i < A.length; i++){
    int value = A[i];
    int j = i - 1;
    while(j >= 0 && A[j] > value){
      A[j + 1] = A[j];
      j = j - 1;
    }
    A[j + 1] = value;
  }
}
于 2013-04-29T03:32:16.070 に答える