剑指Offer-面试题21

2020-06-29  本文已影响0人  一路向北gs

题目描述:

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分

主要实现代码:

void ReorderOddEvent(int* pData, unsigned int length){

        if(pData == NULL || length <= 0){

            return;

        }

        int *begin = pData;

        int *end = pData + length - 1;

        while(begin < end){

            // 向后移动pBegin,直到它指向偶数

            while(begin < end && (*begin % 2) != 0){

            begin++;

        }

        // 向前移动pEnd,直到它指向偶数

        while(begin < end && (*end % 2) == 0){

            end--;

        }

        if(begin < end){

            int temp = *begin;

            *begin = *end;

            *end = temp;

        }

    }

}

上一篇 下一篇

猜你喜欢

热点阅读