微软面试题目(二)移动数组元素
2012-04-18 22:44
141 查看
给定一个整数数组,将数组中小于零的数都放在最左边,等于0的放在中间,小于零的放在最右边。
代码如下:
代码如下:
void swap(int* a,int* b) { *a = *a ^ *b; //a、b中不同位 *b = *a ^ *b; //b = a *a = *a ^ *b; //a = b } void ArrangArray(int* StartPos,int* EndPos) { //Step1先将小于零的放在最左边,大于等于0的数不区分,都放在右边 int* low = StartPos; int* high = EndPos; while(low < high) { while( *low < 0 && low < high ) low++; while( *high >= 0 && low < high ) high--; if(low < high) swap(low,high); } //循环结束时,low一定等于high,且指向大于等于0的数 //Step2,从low开始,将等于0的数移动到左边,大于0的数移动到右边 high = EndPos; while(low < high) { while( *low == 0 && low < high ) low++; while( *high > 0 && low < high ) high--; if(low < high) swap(low,high); } } int main() { int array[10] = {-1,3,0,2,-5,0,-3,4,0,-8}; ArrangArray(array,array + 9); }
相关文章推荐
- 微软面试题目(二)移动数组元素
- 关于微软面试100题系列中两道题目的个人解法
- 淘宝,微软,IBM等公司笔试,面试题目
- 微软面试题目(一) 计算两个日期之间的天数
- 微软面试题目完全版--转自exce4的blog
- 关于链表问题的面试题目 【微软面试100题 第七十七题】
- 微软 数据结构面试题目
- <仅是自己做笔记。。。系列x>所有系列题目都来自v_JULY_v前辈的:精选微软等公司经典的算法面试100题
- 一道微软面试时碰到的,经典的,关于字符串操作的面试题目
- 关于链表问题的面试题目 【微软面试100题 第七十七题】
- 贴上我珍藏的微软测试工程师面试题目
- 六道面试硅谷工程师的变态题目:Adobe、微软、亚马逊、谷歌 试试看吧! - IT公司面试手册
- 微软笔试面试题目
- 测试杯子(微软的一个软件测试面试题目)
- 数据结构微软面试题目
- [面试题目]微软等世界500强公司的面试问题(1)
- 微软比试面试题目
- 淘宝,微软,IBM等公司笔试,面试题目
- 微软面试题目完全版
- 微软面试题目意义深远:制度建设问题