我们爱面试,一面一学-----微软谷歌面试100题--【54】调整数组顺序使奇数位于偶数前面
来源:互联网 发布:web数据挖掘 pdf 编辑:程序博客网 时间:2024/05/16 09:15
同上一篇,这篇是看来的题目,自面试而已。
题目:调整整数数组中元素的顺序,使所有奇数位于偶数的左面。
这应该算快排的一部分思路:找到一个比较标准,然后从数组两头分别搜索,找到两个不符合的元素后,交换位置。
C代码如下:
#include <stdio.h>#include <conio.h>void swap(int *q, int i, int j){ int temp = q[i]; q[i] = q[j]; q[j] = temp;}/*奇数偶数排序*/void s(int *q, int n){ int i = 0, j = n - 1; while(i < j) { //找到q[j]之前的第一个偶数,包括q[j] while((i <= j) && (q[i]&1 !=0)) { ++i; } //找到q[i]之后的最后一个奇数,包括q[i] while((j >= i) && (q[j]&1 ==0)) { --j; } //如果i < j表明仍然有偶数q[i]在奇数q[j]之前,则交换两者 //如果i >= j,则表明所有的奇数都在偶数左面了 if(i < j) { swap(q, i ,j); ++i; --j; } }} int main(){ //要排序的数组 int a[5]; printf("请输入:"); for(int i = 0; i < 5; ++i) { scanf("%d", &a[i]); } //奇数偶数排序 s(a, 5); //输出验证 for(int i = 0; i < 5; ++i) { printf("\n%d", a[i]); } getch(); return 0;}
- 我们爱面试,一面一学-----微软谷歌面试100题--【54】调整数组顺序使奇数位于偶数前面
- 【微软谷歌面试100题--【54】调整数组顺序使奇数位于偶数前面
- 微软谷歌面试100题之调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面 【微软面试100题 第五十四题】
- 面试14:调整数组顺序使奇数位于偶数前面
- 微软面试100题系列---调整数组顺序,使奇数位于偶数之前
- 微软100题(54)调整数组顺序使奇数位于偶数前面
- 程序员面试29 调整数组顺序使奇数位于偶数前面
- H面试(24):调整数组顺序使奇数位于偶数前面
- 面试算法(十三)调整数组顺序使奇数位于偶数前面
- 剑指offer-3-面试14:调整数组顺序使奇数位于偶数前面
- 【剑指Offer面试编程题】题目1516:调整数组顺序使奇数位于偶数前面--九度OJ
- 54 调整数组顺序使奇数位于偶数前面
- 算法题/调整数组顺序使奇数位于偶数前面
- 【数组3】-调整数组顺序使奇数位于偶数前面
- 数组3:调整数组顺序使奇数位于偶数前面
- 42. 微软面试题:调整数组顺序使奇数位于偶数前面(数组)
- 【100题】第五十四题 调整数组顺序使奇数位于偶数前面
- 关于SQL删除重复数据只保留一条
- 20120928
- oracle OS Watcher 安装与错误处理
- hbase 表的重命名
- 主题:用Eclipse进行远程Debug代码
- 我们爱面试,一面一学-----微软谷歌面试100题--【54】调整数组顺序使奇数位于偶数前面
- 几个常用的xargs使用例子
- 插件安装
- EXCEL快捷键大全
- Hibernate 集合属性的延迟加载
- 程序员,请昂起你高贵的头!
- zoj 3353 Chess Board 高斯消元
- 如何给 eclipse 设置快捷键
- android模拟器的快捷键