剑指offer之数组操作

把一个数组中奇数放到前面,偶数在后。
区别奇偶数还是&0x1好用
这是用JAVA写的,好久没用过JAVA了,写这个费了一下午,累死爸爸了,和c++在细节上还是有很多的区别的。
算法的思想就是有两个指针,一个在数组最前,一个在数组最后(pBegin和pEnd),前面的指针碰到偶数就向后移动,知道碰到奇数,后面指针类似。

附代码:

import java.util.Arrays;;

public class ReorderArray {

    public  static void Reorder (int pBegin,int temp[]){

        if(temp.length==0)
            return;
        int pEnd = pBegin+temp.length-1;
        while(pBegin<pEnd){
            while(pBegin<pEnd&&(temp[pBegin]&0x1)!=0)
                pBegin++;
            while(pBegin<pEnd&&(temp[pEnd]&0x1)==0)
                pEnd--;
            if(pBegin<pEnd){
                temp[pBegin]=temp[pBegin]+temp[pEnd];

                temp[pEnd]=temp[pBegin]-temp[pEnd];     
                temp[pBegin]=temp[pBegin]-temp[pEnd];
            }
        }
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    int a[]={1,2,3,4,5,6};
    System.out.print(Arrays.toString(a));
    Reorder(0,a);
    System.out.println("");
    System.out.print(Arrays.toString(a));
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值