面试题14:调整数组顺序使奇数位于偶数前面
来源:互联网 发布:java element类 api 编辑:程序博客网 时间:2024/05/21 21:46
题目:输入一个数组,实现一个函数调整该数组中的数字顺序,使得奇数在前,偶数在后。
思路:快速排序的分区思想,设置首尾两指针,找到前半部分的偶数和后半部分的奇数,交换即可。
算法复杂度为O(n)。
代码如下:
void ReorderOddEven(vector<int> &data){ int size = data.size(); int p = 0, q = size-1; while(1) { while(p<q && (data[p] & 0x1) != 0) { p++; } while((data[q] & 0x1) == 0) { q--; } if(p<q) { int tmp = data[p]; data[p] = data[q]; data[q] = tmp; } else { break; } }}
判断奇偶,用&运算来计算,a & 0x1 = 0即是偶数,否则为奇数。
阅读全文
0 0
- 试题14:调整数组顺序使奇数位于偶数前面
- [剑指offer][面试题14]调整数组顺序使奇数位于偶数前面
- 剑指offer 面试题14 调整数组顺序使奇数位于偶数前面
- 面试题14 调整数组顺序使奇数位于偶数前面
- 面试题14:调整数组顺序使奇数位于偶数前面
- 面试题14-调整数组顺序使奇数位于偶数前面
- 面试题14:调整数组顺序使奇数位于偶数前面
- 面试题14 调整数组顺序使奇数位于偶数前面
- 《剑指Offer》面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer 面试题14—调整数组顺序使奇数位于偶数前面
- 《剑指Offer》学习笔记--面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer--面试题14:调整数组顺序使奇数位于偶数前面--Java实现
- 【剑指Offer学习】【面试题14 :调整数组顺序使奇数位于偶数前面】
- 剑指offer面试题14-调整数组顺序使奇数位于偶数前面
- 面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer-面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer之面试题14:调整数组顺序使奇数位于偶数前面
- 面试题14:调整数组顺序使奇数位于偶数前面
- Java高并发综合
- 无状态服务 VS 有状态服务
- Spring Cloud + spring boot + springmvc+mybatis分布式微服务云架构
- 【刷题】Search in a Big Sorted Array
- 桥接模式、NAT模式和仅主机模式
- 面试题14:调整数组顺序使奇数位于偶数前面
- 图片上传的架构
- js去掉html标签只去文字内容
- 03 H5用busybox制作64位文件系统
- Spring Cloud分布式微服务云架构大型企业服务组件
- python基础-10-文件操作
- hive内部表,外部表区别
- iframe cordova把网页打包成ios时,iframe内嵌网页不显示的解决办法
- java cms系统 springmvc mybatis