zoukankan      html  css  js  c++  java
  • 调整数组顺序使奇数位于偶数前面

    问题描述:

    输入一个整数数组,实现一个函数来调整该数组中的数字顺序,

    是的所有奇数位于数组的前半部分,所有偶数位于后半部分。

    思路分析:

    使用两个指针,一个指向数组头,一个指向数组尾,相向运动,一个在前面找偶数,

    一个在后面找奇数,找到后互换,两个指针相遇则结束。

    参考代码:

    void RecordOddEven(int *pData,int nLength)
    {
        if ((pData == NULL) || (nLength == 0))
        {
            return ;
        }
        int *pBegin = pData;
        int *pEnd = pData+nLength-1;

        while(pBegin < pEnd)
        {
            while((pBegin < pEnd) && ((*pBegin &0x1) != 0))
            {
                pBegin++;
            }

            while((pBegin < pEnd) && ((*pEnd &0x1) == 0))
            {
                pEnd--;
            }

            if (pBegin < pEnd)
            {
                int tmp = *pEnd;
                *pEnd = *pBegin;
                *pBegin = tmp;
            }
        }

        cout<<*pBegin<<"  "<<*pEnd<<endl;
    }

  • 相关阅读:
    定位及CSS常见属性
    浮动及清浮动的方法
    C语言II博客作业04
    C语言II—作业03
    C语言II—作业02
    C语言II博客作业01
    期末总结
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
  • 原文地址:https://www.cnblogs.com/Mr-Zhong/p/4177156.html
Copyright © 2011-2022 走看看