剑指offer面试题14 调整数组元素顺序使得奇数在前半部分偶数在后半部分

这个自己相想了一个快排思想的 测试了 应该是没有问题。:-) 
双指针用过很多次了。。这里最主要的一个问题是我第一次用函数指针 主要针对可扩展性的
/*
这题也是自己一下子就想到了 一个是双指针 一个是快排的思想。。
标准解法是双指针,但是这里提到了一个非常重要的问题
就是扩展性 如果面试官问 不按奇数偶数排序 而是按照 正负呢 如果按照 是不是三的倍数呢?
这里就要用函数指针了。。。好激动啊。。第一个用函数指针
*/

#include
#include
using namespace std;
const int maxn=1000;

//双指针 每次从前找偶数 从后找奇数 如果找到后发现start< end就交换
//函数指针的定义 返回值 括号内*func 后面括号返回值

bool isEven(int n)
{
    return (n & 0x1)==0;
}
void ReorderWithDoublePointer(int arr[],int n,bool (*func)(int))
{
    if(arr== NULL || n==0)
        return ;
    int * start=arr,*end=arr+n-1;
    while(start

你可能感兴趣的:(面试)