整数数组0元素后移
来源:互联网 发布:免费snmp网络管理软件 编辑:程序博客网 时间:2024/05/17 16:56
题目:如下:int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)。
#include<iostream>
using namespace std;
int Func(int* a, int nSize)
{
int* pAhead=a;
int* pBehind=a;
int i=0;
while(*pAhead!=0)
{
*pBehind++=*pAhead++;
i++;
}
while(pAhead-a<nSize)
{
if(*pAhead==0)
{
pAhead++;
continue;
}
*pBehind++=*pAhead++;
}
while(pBehind-a<nSize)
*pBehind++=0;
return i;
}
void main()
{
int A[] = {6 ,0 ,3, 4, 0, 5, 9, 6, 4, 6, 5, 8, 0, 0};
int nSize = sizeof(A)/sizeof(A[0]);
cout<<"before: ";
for (int i = 0; i < nSize; i++)
{
cout<<A[i]<<" ";
}
int pos = Func(A, nSize);
cout<<endl<<"after: ";
for (i = 0; i < nSize; i++)
{
cout<<A[i]<<" ";
}
cout<<endl<<"原数组第一个0元素的下标为: "<<pos<<endl;
cout<<endl;
}
- 整数数组0元素后移
- 整数数组0元素后移
- 递归---整数数组元素A[0]~A[i]中的最小值
- Java声明一个10个元素的整数数组,随机赋值,打印输出,排序后,打印输出
- AndroidJNI.SetShortArrayElement设置短整数数组元素
- 整数型数组元素拼接问题
- 整数型的有序递增数组循环右移x位后,查找指定整数 算法
- 给定数组,去掉0元素后将剩下的元素赋给新的数组
- 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次,编写代码找出数组中的某个元素
- 数组内部元素操作,将所有0移到后尾
- 整数逆序后放入数组中
- 数组最后一位放在数组第一位,其余数组元素一次后移
- 定义一个一维数组,其元素个数从键盘中输入,元素的值为[100,200]的随机整数。 (1)输出数组的每个数 (2)对数组的数进行升序排序,输出排序后的数组元素 (3)从键盘上输入一个整数,查找该整数是
- 问题:利用输入输出流重载实现一个整数数组的输入和输出。 要求:输入一个数组大小 及 所有元素的值,排序后输出该数组的所有元素。
- 数组剔除元素后的乘积
- 题目:数组剔除元素后的乘积
- LintCode 数组剔除元素后的乘积
- (50)数组剔除元素后的乘积
- Discuz X3.0,X2.5最新帖子单页展示教程,附懒人包,站长基地zzjidi.com
- Linux C编程中的段错误
- Android 检查WIFI是否可用的实现方法
- UML中聚合和组合的区别
- poj 3277
- 整数数组0元素后移
- 大话设计模式_建造者模式
- how to product static link lib .a file
- 元数据包含无法解析的引用:“http://169.254.80.80:83/WS_Login.asmx”。
- IOS-iphone真机免证书调试
- CXF2.7.3 与spring 3集成 .
- 全区全服PVP服务器管理策略
- 菜鸟学做seo全套教程
- Java开源建站工具