调整数组顺序使奇数在前

来源:互联网 发布:码畜 知乎 编辑:程序博客网 时间:2024/06/16 04:31

用一个单独的函数来判断数字是否符合标准,利用函数指针进行操作。

#include<iostream>using namespace std;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 tmp = *pBegin;*pBegin = *pEnd;*pEnd = tmp;}}}bool isEven(int n){return (n & 1) == 0;}void ReorderEven(int *pData, unsigned int length){Reorder(pData, length, isEven);}int main(){int pData[] = { 1, 3, 8, 0, 4, 5, 3, 6, 4, 2 };ReorderEven(pData, 10);for (int i = 0; i < 10; i++)cout << pData[i] << " ";}


0 0
原创粉丝点击