調節命令その偶数奇数の前にアレイ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];
}
}
}