面试题 14
来源:互联网 发布:济南锋刃网络 编辑:程序博客网 时间:2024/06/06 00:00
1 题目描述
输入一个数组,实现一个函数来调整数组中数字的顺序,使得所有的奇数位于数组的前面,所有偶数位于数组的后半部分。
2 算法描述
设置一个头指针和一个尾指针,头指针不断向后移动,直到遇到偶数,尾指针不断向前移动,直到遇到奇数,交换头指针和尾指针的数据,继续循环上述操作,直达头指针与尾指针交错。这个算法有点像快速排序中 partition 操作
3 c 语言实现
#include<stdio.h>void reorderOddEven(int *data,int len){ int *head=data; int *rear=data+(len-1); int temp; if(data=NULL||len<=0) return; while(head<rear){ while(head<rear&&(*head&1)==1)head++; while(head<rear&&(*rear&1)==0)rear--; if(head<rear){ temp=*head; *head=*rear; *rear=temp; } }}void show(int *data,int len){ if(data==NULL||len<=0) return; int i; for(i=0;i<len;i++){ printf("%d",data[i]); }}void main(){ int a[]={1,2,3,4,5,6,7,8,9,10}; reorderOddEven(a,10); show(a,10);}
0 0
- .net面试题14
- 面试题 14
- 14-面试题总结
- 面试题14
- 华为14实习面试题
- 剑指offer面试题14
- java面试题 14 -20
- hadoop面试题(14)
- 14、java并发面试题
- 剑指offer面试题14
- 面试题....
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- RegEnumValue读取注册表不完整问题
- [文件系统]制作可运行的Linux-0.11 http://huqingyu.cnblogs.com/archive/2005/02/18/105589.html
- 为php安装libssh2扩展
- 5种类型的程序员-兄弟连IT教育
- __stdcall
- 面试题 14
- liunx下swf转换 相关问题____http://bbs.csdn.net/topics/390797316
- 面试题(一)
- spring-boot,jdbc,jsp配置
- 「改进的快速排序」时间复杂度接近O(n)
- XssSniper 扩展介绍
- ubuntu下tcpdump总结
- 将字符串变量转换成临时表
- Android软键盘强制弹出,隐藏输入法.