数组:调整一个数组,把奇数放在前半部分,偶数在后半部分

这个笔试题,我在网上找了答案,但是我上机试了一下,发现网上的答案有错误,所以我又调试了一下,先将题目展示一下,之后说说我的思路,最后奉上我的代码。
题目为:调整一个数组,把奇数放在前半部分,偶数在后半部分。
思路为:从前面开始找偶数,从后面开始找奇数,用begin和end分别做标记,找到之后进行交换,但是在交换之前一定要判断begin是否小于end,否则会出现错误。
代码如下:
/**
* 调整一个数组,把奇数放在前半部分,偶数在后半部分
* 思路:从前面开始找偶数,从后面开始找奇数
* 0 1 2 3 4 5
* 1, 2, 3, 4, 5, 6
*/
public static int[]a =new int[]{1,2,3,4,5,6};
public static void main(String[] args) {
RecordOddEven();
display();
}
/**
* 思路是:从前面开始扫描,从前面开始找奇数,从后面开始找偶数,如果找到了就交换,记住交换之前也一定要记住这个条件:begin<end
*/
public static void display(){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
public static void RecordOddEven(){
int begin=0;
int end=a.length-1;
while(begin<end){
while(!isEven(a[begin])){
begin++;
}
while(isEven(a[end])){
end--;
}
if(begin<end){
int temp=a[begin];
a[begin]=a[end];
a[end]=temp;


begin++;
end--;
}
}


}
//判断是否是偶数
public static boolean isEven(int b){
return b%2==0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值