【微软谷歌面试100题--【54】调整数组顺序使奇数位于偶数前面
2012-09-05 21:33
357 查看
题54
调整数组顺序使奇数位于偶数前面。
题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,
所有偶数位于数组的后半部分。要求时间复杂度为O(n)。
public class Algorithm54_0 {
public static void main(String[] args) {
int a[]={7,8,2,4,59,6,1,45,52};
int i=0,j=a.length-1;
while(i<j){
if((a[j]&1)==0) j--;//判断是否是奇数
if((a[i]&1)!=0) i++;
swap(a, i, j);
i++;j--;
}
for(int aa:a){
System.err.println(aa);
}
}
static void swap(int a[],int i,int j){
int temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
调整数组顺序使奇数位于偶数前面。
题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,
所有偶数位于数组的后半部分。要求时间复杂度为O(n)。
public class Algorithm54_0 {
public static void main(String[] args) {
int a[]={7,8,2,4,59,6,1,45,52};
int i=0,j=a.length-1;
while(i<j){
if((a[j]&1)==0) j--;//判断是否是奇数
if((a[i]&1)!=0) i++;
swap(a, i, j);
i++;j--;
}
for(int aa:a){
System.err.println(aa);
}
}
static void swap(int a[],int i,int j){
int temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
相关文章推荐
- 我们爱面试,一面一学-----微软谷歌面试100题--【54】调整数组顺序使奇数位于偶数前面
- 微软谷歌面试100题之调整数组顺序使奇数位于偶数前面
- 微软100题(54)调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面 【微软面试100题 第五十四题】
- 调整数组顺序使奇数位于偶数前面 【微软面试100题 第五十四题】
- 微软面试100题系列---调整数组顺序,使奇数位于偶数之前
- 面试14:调整数组顺序使奇数位于偶数前面
- 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面
- 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面
- 程序员面试题100题第29题——调整数组顺序使奇数位于偶数前面
- 程序员面试题100题第29题——调整数组顺序使奇数位于偶数前面
- 面试算法(十三)调整数组顺序使奇数位于偶数前面
- 微软,Google面试题 (29) —— 调整数组顺序使奇数位于偶数前面
- 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面
- 42. 微软面试题:调整数组顺序使奇数位于偶数前面(数组)
- 程序员面试100题之二十九,调整数组顺序使奇数位于偶数前面
- 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面[算法]
- H面试(24):调整数组顺序使奇数位于偶数前面
- 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面[算法]
- 54 调整数组顺序使奇数位于偶数前面