調整陣列使得奇數都在前面,偶數都在後面(可擴充套件到其他形式,如正負等)
分析:可以使用時間複雜度為o(n),空間複雜度也為o(n)的插入演算法。新建乙個和原來陣列一樣大小的陣列,再遍歷陣列中的每個元素,如果是奇數,則插入陣列的前半部分,如果是偶數,則插入陣列的後半部分,這樣就可以看成是兩端不斷往中間擴充套件直至前後兩端相接觸為止。
具體**如下:
package problem2;
/** *@author hutongling
*/public
class 調整陣列使奇前偶後
if((data[i]%2)==0) //當為偶數的時候直接插到後面,從後面往前面走,因為不需要考慮偶數內部的順序,故這樣是可以的
a[count2--]=data[i];
}// for(int i=0;i// if((data[i]%2)==0)
// a[count1++]=data[i];
// }
for(int i=0;i" ");
system.out.println();
}public
static
void
main(string args) ;
int data1=;
int data2=;
adjustarray1(data);
adjustarray1(data1);
adjustarray1(data2);
}}
結果如下:
3 5 9 8 6 4 2 10
1 3 5 9 1 8 6 4 2
3 3 15 39 14 18 36 14 12
調整陣列順序使得奇數字於偶數前面
輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。思路 使用兩個指標,前邊的指標尋找偶數,後邊的指標尋找奇數 若兩個指標都找到了目標,就交換兩個值,進行交換的時候,需要移動元素,...
調整陣列順序使得奇數字於偶數前面
輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得全部的奇數字於陣列的前半部分。全部的偶數字於位於陣列的後半部分。調整陣列順序使得奇數字於偶數前面 by rowandjj 2014 8 1 include includeusing namespace std 高效解法,但會調整後的陣列元素...
演算法 調整陣列順序使得奇數在偶數前面
輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。此題運用插入排序 1.遍歷整個陣列,找奇數,找到了往前面插 2.如果該數是奇數,並且前面乙個數是偶數,將該奇數先儲存起來,然後將前面...