嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

周梦康 发表于 2015-06-22 3273 次浏览 标签 : 计算机基础剑指 offer
void Reorder(int* pData, unsigned int length,bool (*func)(int)){
    if(pData == NULL || length == 0){
        return;
    }
    int* pBegin = pData;                // 指向第一个元素的指针
    int* pEnd = pData + length -1;      // 指向末尾元素的指针
    while(pBegin < pEnd){
        while(pBegin < pEnd && !func(*pBegin)){
            pBegin ++;
        }
        while(pBegin < pEnd && func(*pEnd)){
            pEnd --;
        }
        if(pBegin < pEnd){
            int temp = *pBegin;
            *pBegin = *pEnd;
            *pEnd = temp;
        }
    }
}

bool isEven(int n){
    return (n & 1) == 0;
}

void ReorderOddEven(int* pData, unsigned int length){
    Reorder(pData,length,isEven);
}

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表