剑指Offer之 - 调整数组顺序使奇数位于偶数前面
来源:互联网 发布:舞蹈教学软件 编辑:程序博客网 时间:2024/05/22 03:28
题目:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
思路:
两个指针,一个指向开头,一个指向末尾。
代码:
#include<iostream>using namespace std;//功能:把数组里的奇数放在前面,偶数放在后面//解法1:两个指针,一个在前一个在后void ReorderOddEven(int *pData , unsigned int length){if(pData == NULL || length <= 0)return;for(int i = 0 , j = length - 1 ; i < j ; i++ , j--){while(i < j && (pData[i] & 1) ){i++;}while(i < j && (pData[j] & 1 == 0)){j--;}swap(pData[i] , pData[j]);}}//更加通用的解法typedef bool (*pFunc)(int);void ReorderOddEvenCom(int *pData , unsigned int length , pFunc func){if(pData == NULL || length <= 0)return;for(int i = 0 , j = length - 1 ; i < j ; i++ , j--){while(i < j && !func(pData[i])){i++;}while(i < j && func(pData[j])){j--;}swap(pData[i] , pData[j]);}}bool isEven(int n){return (n & 1) == 0;}int main(){int num[8] = {2,4,6,8,1,3,5,7};ReorderOddEvenCom(num , 8 , isEven);for(int i = 0 ; i < 8 ; i++){cout<<num[i]<<' ';}cout<<endl;}
0 0
- 剑指offer:调整数组顺序使奇数位于偶数前面
- 剑指offer--调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 《剑指offer》调整数组顺序使奇数位于偶数前面
- 剑指 offer:调整数组顺序使奇数位于偶数前面
- 剑指offer-调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 剑指offer-调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 【剑指offer】调整数组顺序使奇数位于偶数前面
- [剑指offer]调整数组顺序使奇数位于偶数前面
- 剑指offer:调整数组顺序使奇数位于偶数前面
- 【剑指offer】调整数组顺序使奇数位于偶数前面
- 剑指offer|调整数组顺序使奇数位于偶数前面
- 《剑指offer》调整数组顺序使奇数位于偶数前面
- 剑指Offer:调整数组顺序使奇数位于偶数前面
- 剑指offer - 调整数组顺序使奇数位于偶数前面
- 【剑指offer】调整数组顺序使奇数位于偶数前面
- sqlite的数据导入 导出
- .VC获取EXCEL 表格的总行列数 新建文件
- ATS无法缓存QQ音乐的音频文件问题
- 2015编程之美资格赛-2月29日
- ListView 点击加载更多出现异常(java.lang.IndexOutOfBoundsException: Invalid index 10, size is 10)
- 剑指Offer之 - 调整数组顺序使奇数位于偶数前面
- Latex简历
- Windows 2008 R2 导出Excel时提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
- WinCE 应用程序开机自动运行 .
- 顺序栈的实现
- 移除Unity工程里所有图片的Alpha通道
- wifi技术在智能家居中的优势--目前智能化阶段的最佳选择
- IOS开发得到所有的字体样式
- WinCE桌面添加应用程序的快捷方式及自启动 .