「アルゴリズム」は、偶奇の前にアレイの順序を調整します

調節命令その偶数奇数の前にアレイ0013

タイトル説明

アレイ内の数字の順序を調整する機能を実現するために、整数の配列を入力し、そのようなアレイの前半のすべての奇数一部こと、全ての偶数列の後半に位置し、奇数の間と比較的偶数、奇数とを確保されています同じ位置。

トピックスアドレス

  • https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593

レポートの問題解決

挿入ソートのアイデア

マイクロチャネル公共数によって、この問題の解決策小猿刷题が間違っを提供するには、私を修正してください。

同じ相対位置安定性を維持する必要性の両方の、奇数の前に、後ろ及びこれらの内部ソートアルゴリズムの偶数少し例えばソートアルゴリズムの安定性を考慮し、挿入ソート、マージソート等で、類似しているれ、ここで挿入ソートを使用して達成。

/**
 *  微信公众号"小猿刷题"
 */
public class Solution {
    public void reOrderArray(int [] array) {
        // 记录已经摆好位置的奇数的个数
        int k = 0;
        for (int i = 0; i < array.length; i++) {
            if (array[i] % 2 == 1) {
                int j = i;
                while (j > k) {
                    int tmp = array[j];
                    array[j] = array[j-1];
                    array[j-1] = tmp;
                    j--;
                }
                k++;
            }
        }
    }
}

トラバーサル思考倍

マイクロチャネル公共数によって、この問題の解決策小猿刷题が間違っを提供するには、私を修正してください。

第二のパスを横断する奇数の最初のパストラバーサル、。

/**
 *  微信公众号"小猿刷题"
 */
public class Solution {
    public void reOrderArray(int [] array) {
        int [] arr = new int [array.length];
        int k = 0;
        for(int i=0; i < array.length; i++){
            if (array[i] % 2 == 1){
                arr[k++] = array[i];
            }
        }
        for(int i = 0; i < array.length; i++) {
             if (array[i] % 2 == 0){
                 arr[k++] = array[i];
             }     
        }
        for(int i = 0; i < array.length; i++){
            array[i] = arr[i];
        }
    }
}

小さなブラシ猿のタイトル

リリース元の4件の記事 ウォンの賞賛1 ビュー54

おすすめ

転載: blog.csdn.net/huntswork/article/details/104387260