某软件研发笔试题 – 0的移动
来源:互联网 发布:没有windows安装光盘 编辑:程序博客网 时间:2024/05/10 22:50
题目:
int a[nSize],其中隐藏着若干0,其余非0整数,写一个函数
int Func(int *a, int nSize);
使a把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)
解:
思路1:不知道这里的有序是什么个意思。是按照大小有序,还是按原来先后顺序有序。如果是原来先后顺序有序的话。只需要一次遍历,将为0的元素填充为后面第一个不为0 的元素,然后将不为0的元素置0即可。
思路2:借用快速排序思想,设两指针low和high,分别指向数组头和尾。low指针从前往后扫描为0的元素,high指针从后往前扫描不为0的元素然后交换,当low<high时结束,此时high指针指向不为0元素中的最后一个。然后对a[0..high]进行从大到小排序。
- 某软件研发笔试题 – 0的移动
- 百度2013校园招聘移动软件研发工程师笔试题
- 猎豹移动2016研发工程师笔试题
- 2013百度软件研发笔试题
- 2014百度软件研发工程师笔试题
- 中体彩软件研发笔试题
- KDXF软件研发笔试
- 百度移动研发2015校招笔试题
- [2013百度软件研发笔试题] 求字符串中连续出现相同字符的最大值
- 2013 江苏银河电子股份有限公司笔试题 软件研发/嵌入式软件研发
- 神州数码网络公司和富士通软件研发笔试题
- 2012百度笔试题 - 实习软件研发工程师
- 京东2013校园招聘软件研发笔试题
- 百度2013年校园招聘 软件研发笔试题
- 百度2013校园招聘笔试题[软件研发]及答案
- 【校园招聘】2013百度软件研发笔试题
- 百度2013笔试题——软件研发类
- 百度2013校园招聘软件研发笔试题及答案
- 命令
- java初学 终态类final定义区别
- 精通HADOOP(三) - 初识Hadoop - Hadoop介绍
- linux mysql 命令 大全
- mysql-5.0.22.tar.gz 源码包的安装方法
- 某软件研发笔试题 – 0的移动
- eclipse中安装tomcat插件
- vc6.0转为vc2003遇到的问题
- 一个简单的Silverlight验证码例子
- VC操作Excel文件编程相关内容总结
- 在电子图版CAXA中定义自己的标题栏和图框
- 矩阵行列式求解的递归和非递归算法代码(已通过Matlab验证)
- 域策略更新问题
- Problem1