剑指offer 14 - 调整数据顺序使奇数位于偶数前面
来源:互联网 发布:大数据 hadoop 配置 编辑:程序博客网 时间:2024/06/05 10:14
1.设定两个指针p1,p2: p1初始指向第一个元素,p2指向第二个元素
2.p1向前直到指向偶数,p2向前直到指向奇数,若p1<p2交换,若p1>p2停止
3.函数指针
#include <iostream>using namespace std;bool isEven(int n){return (n&1)==1; //偶数返回1}void Recorder(int *data, unsigned int length, bool (*func)(int) ) //函数指针{if(data==NULL|| length==0)return;int *pBegin=data;int *pEnd=data+length-1;while(pBegin<pEnd){while(pBegin<pEnd && func(*pBegin)) //奇数在前pBegin++;while(pBegin<pEnd && !func(*pEnd)) //奇数在前pEnd--;if(pBegin<pEnd)swap(*pBegin,*pEnd);}}void Test(int *data,int length){for(int i=0;i<length;i++) cout<<data[i]<<" ";cout<<endl;Recorder(data,length,isEven);cout<<"转换后:"<<endl;for(int i=0;i<length;i++) cout<<data[i]<<" ";cout<<endl<<endl;}void Test1(){int data[]={1,2,3,4,5};Test(data,sizeof(data)/sizeof(int));}void Test2(){int data[]={1,3,5,2,4};Test(data,sizeof(data)/sizeof(int));}void Test3(){int data[]={2,4,1,3,5};Test(data,sizeof(data)/sizeof(int));}void Test4(){Test(NULL,0);}void Test5(){int data[]={1};Test(data,sizeof(data)/sizeof(int));}int main(int argc, char* argv[]){Test1();Test2();Test3();Test4();Test5();return 0;}
0 0
- 剑指offer 14 - 调整数据顺序使奇数位于偶数前面
- 剑指offer:调整数组顺序使奇数位于偶数前面
- 剑指Offer调整顺序使奇数位于偶数前面
- 剑指offer--调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 《剑指offer》调整数组顺序使奇数位于偶数前面
- 剑指 offer:调整数组顺序使奇数位于偶数前面
- 剑指offer-调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 剑指offer-调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 【剑指offer】调整数组顺序使奇数位于偶数前面
- [剑指offer]调整数组顺序使奇数位于偶数前面
- 剑指offer:调整数组顺序使奇数位于偶数前面
- 【剑指offer】调整数组顺序使奇数位于偶数前面
- 剑指offer|调整数组顺序使奇数位于偶数前面
- 《剑指offer》调整数组顺序使奇数位于偶数前面
- 剑指Offer:调整数组顺序使奇数位于偶数前面
- 栈
- 怎样可以通过读trail文件得出OGG使用啥sql 同步数据的
- 系统tabBar隐藏出现白条
- Android——登陆界面的异步实现
- Android问题集锦之四十二:INSTALL_FAILED_OLDER_SDK
- 剑指offer 14 - 调整数据顺序使奇数位于偶数前面
- MacOS X编译OpenSceneGraph
- JNDI 是什么
- Oracle连接问题
- AppCan&西游汇“移动互联网创业者技术沙龙” (重庆站)
- 各类竞拍网如何选择适用的?
- 根据URL获取图像的常用配置(gbrowse)
- My orcal load
- riot.js学习【九】路由