数组中元素排列为奇数在前偶数在后

处理流程如下图所示。

对于用例:   1,2,4,5,3

处理结果为:1,3,5,4,2


//将数组a中奇数放在前面,偶数放在后面

-(void)swapArray:(int[])a

{

    int len = sizeof(&a)/sizeof(int);

    if(len <= 0)    //数组长度为0则返回

        return ;

    int front = 0, end = len-1;//设置两个指针,一个指向头部,一个指向尾部

    while(front<end)

    {

        while(front<len && (a[front]&1)==1)    //从前往后找偶数

            front++;

        while(end>=0 && (a[end]&1)==0)    //从后往前找奇数

            end--;

        if(front<end)

        {

            int swap = a[end];    //将奇数往前挪,偶数往后挪

            a[front] = a[end];

            a[end] = swap;

        }

    }

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值