调整数组顺序使奇数位于偶数前面
来源:互联网 发布:黑魂3捏脸 防火女 数据 编辑:程序博客网 时间:2024/06/07 01:36
#include<bits/stdc++.h>using namespace std;//=========================方法1=========================void ReorderOddEven_1(int* pData, unsigned int length){ if(pData == NULL || length ==0){ return; } int* pBegin = pData; int* pEnd = pData + length - 1; while(pBegin < pEnd){ //向后移动PBegin,直到它指向偶数 while(pBegin < pEnd && (*pBegin & 0x1) != 0){ pBegin++; } //向前移动pEnd,直到它指向奇数 while(pBegin < pEnd && (*pEnd & 0x1) == 0){ pEnd--; } if(pBegin < pEnd){ int tmp = *pBegin; *pBegin = *pEnd; *pEnd = tmp; } }}//=================================方法2====================================//考察可扩展性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 ReorderOddEven_2(int* pData, unsigned int length){ Reorder(pData, length, isEven);}int main(){ int numbers[] = {1, 2, 3, 4, 5, 6, 7}; unsigned int len = 7; ReorderOddEven_1(numbers, len); for(int *p = numbers; p != numbers + len; p++){ printf("%d\t",*p); } printf("\n"); return 0;}
阅读全文
0 0
- 【数组3】-调整数组顺序使奇数位于偶数前面
- 数组3:调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面--总结
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面[
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使偶数位于奇数前面
- coding - 调整数组顺序使奇数位于偶数前面
- Ruby学习笔记(20)_符号Symbol
- ASP访问Excel数据,忽然不能正常访问
- Java多线程学习(吐血超详细总结)
- Unit13
- Linux安装RocketMQ
- 调整数组顺序使奇数位于偶数前面
- FFmpeg发送流媒体的命令(UDP,RTP,RTMP)
- wifi p2p direct和wifi display两者发出request帧的差异
- Doolittle分解法(LU分解)详细分析以及matlab的实现
- angular创建项目,ng new my-app unexpected token,node更新 invalid version
- PhpStorm 2017.2.4注册码
- Java基础和面试 任务 总有你不知道。积累之道
- python3 安装 scrapy Unable to find vcvarsall.bat
- ios中使用归档