面试题 14
2015-09-07 13:46
323 查看
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); }
相关文章推荐
- 面试题(一)
- 5种类型的程序员-兄弟连IT教育
- 动态规划求解抛鸡蛋问题(Google某年面试题)
- 一道面试题
- 黑马程序员--类的本质
- 面试
- 谁说女子不如男
- C printf() 详解——printf('%08x',number); 程序员面试宝典中的一个错误 char * b=(char *)&a
- 成为优秀的码农要记住的八件事
- 黑马程序员--OC的Foundation框架之日期
- 面试题 13
- 黑马程序员--多态
- 程序员的自我修养——操作系统篇
- 程序员必备:技术面试准备手册
- 码农们可以优越,并且应该优越
- 面试题 12
- 操作系统常见面试题总结
- 黑马程序员—JAVA基础学习日记十——反射学习总结
- Java 面试高频提问知识点之:Set、List 和 Map 的区别
- 黑马程序员--OC的Foundation框架之字典