整列挿入[JAVA]


挿入位置合わせInsertion Sort
昇順ソート、降順ソートが必要な場合は、「挿入ソート」を使用します.
ただし、ソートが必要な数が少ない場合に便利です.
例えば、a b c d e fがある場合、
2番目のbを基準として、bの前のaと値を比較する.
このときaの値が大きいとbとaの位置が変わります.
b a c d e f
今回は3番目のcとaの値を比較します.
このように所定の位置の値を順番に比較すると、昇順、降順のソートが可能となる.
    public void insetSort(){
        int i;
        int j;
        int numKey;                   
        int playerNoKey;              

        for(i = 1; i < sumOfDice.length; i++){
            numKey = sumOfDice[i];
            playerNoKey = playerArr[i];
          
            for(j = i - 1; (j != -1) && (numKey < sumOfDice[j]); j--){
                sumOfDice[j + 1] = sumOfDice[j]; // 오른쪽으로 밀어내기
                playerArr[j + 1] = playerArr[j]; // 오른쪽으로 밀어내기
            }

            // for(비교할 대상; 기준)
            sumOfDice[j + 1] = numKey;      // 기준값 저장
            playerArr[j + 1] = playerNoKey; // 기준값 저장
        }
    }