特定の配列インデックスをスキップするには?

IMBABOT:

配列内の唯一の奇数値をソートするために、それでも値がその場所に残っている必要がありますする必要があります。

ここに私のコードは次のとおりです。

public static int[] sortArray(int[] array) {

    int length = array.length;
    int temp = 0;


    for (int i = 0; i < length; i++) {
        for (int j = 1; j < length - i; j++) {
            if (j > 0 && array[j] % 2 == 0)continue;

                if (array[j - 1] > array[j]){
                    temp = array[j - 1];
                    array[j - 1] = array[j];
                    array[j] = temp;
                }
            }
        }

    return array;
}

入力: new int[]{5, 3, 2, 8, 1, 4, 0}

出力: [1, 3, 5, 2, 8, 4, 0]

私は必要があります。 [1, 3, 2, 8, 5, 4, 0]

配列内の特定のインデックスをスキップするには?

これはと接続されるべきだと思うcontinueオペレータが、私はどのように行うのか分かりません。

ジョン・マクレーン:

代わりに、このコードを使用します。

public static int[] sortArray(int[] array) {

    int length = array.length;

    for (int i = 0; i < length - 1; i++) {
        int k = -1; // The index of last odd element
        for (int j = 0; j < length - i; j++)
            if (array[j] % 2 != 0) {
                if (k >= 0 && array[k] > array[j]) {
                    int temp = array[k];
                    array[k] = array[j];
                    array[j] = temp;
                }
                k = j;
            }
    }

    return array;
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=196614&siteId=1