博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指OFFER——调整数组顺序使奇数位于偶数前面
阅读量:6980 次
发布时间:2019-06-27

本文共 989 字,大约阅读时间需要 3 分钟。

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

剑指offer书里的版本,没有要求相对位置不变,而是给出了函数指针版本,替换判断是奇数的函数,可以提供将满足X条件的数字挪到不满足X条件的数字前面

 

快速排序的变形,和书上的不一样,我用了几乎非常接近快速排序的代码:

class Solution {public:    void reOrderArray(vector
&array) { int temp=array[0]; int s=array.size(); int i=0; int j=s-1; while(i

不改变相对位置的版本:

class Solution {public:    void reOrderArray(vector
&array) { vector
temp(array); int s=array.size(); int count1=0;//表示奇数个数 int count2=0;//表示偶数个数 for(int i=0,j=s-1;i
=0;i++,j--){ if(temp[i]%2==1){ array[count1]=temp[i]; count1++; } //前面安置奇数,后面安置偶数 if(temp[j]%2==0){ array[s-1-count2]=temp[j];//从后扫描的第一个偶数,被放在最后的位置 count2++; } } }};

 

转载于:https://www.cnblogs.com/LUO77/p/5379357.html

你可能感兴趣的文章
【设计模式】—— 创建者模式Builder
查看>>
C++/Php/Python 语言执行shell命令
查看>>
2017年物联网发展走向的11种预测
查看>>
降低物联网设备安全风险的六大因素
查看>>
Phalcon入门教程之模型CURD(2)
查看>>
四川成立大数据发展研究会 拟建公共云暨数据交易中心
查看>>
安全公司发现针对印度外交部与军事机构的间谍活动
查看>>
无接口.NET代码的单元测试
查看>>
数据库产品如何选型
查看>>
如何管理跨部门的沟通与协作?
查看>>
国防科大联合交流团来榕洽谈智慧城市建设合作
查看>>
日本外务省新设网络安全保障政策室
查看>>
美“智能城市挑战赛”决赛名单公布:7座城市入围
查看>>
企业全光网将成运营商部署千兆接入的商业驱动力
查看>>
sql 2000 分页存储过程
查看>>
2030年实现全球10TW的光伏目标 太阳能电池需要哪些突破?
查看>>
2017年物联网五大趋势
查看>>
卡巴斯基:智能汽车应用程序存在安全风险
查看>>
由一个营业厅投诉引发的思考
查看>>
智能家居火热但仍存缺陷,傻瓜式操作或成未来方向
查看>>