作业帮 > 数学 > 作业

假设数组A[n]的n个元素中有多个零元素,设计一个算法,将A中所有的非零元素依次移到A的前端

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/07/02 18:02:18
假设数组A[n]的n个元素中有多个零元素,设计一个算法,将A中所有的非零元素依次移到A的前端
1算法设计思想(可文字叙述或画流程图)
2运行结果(需将结果截图到该文档中,图中文字、字母、符号应清晰可见)
谢谢!
假设数组A[n]的n个元素中有多个零元素,设计一个算法,将A中所有的非零元素依次移到A的前端
1.建立数组/链表,初始化数据
2. 两个指针,一个头指针,初值为null或(数组下标=-1), 一个尾指针指向元素尾部
头指针指示可交换头部位置(就是 这个指针前面都是交换好的非0元素不用在动了)
尾指针指向待处理元素
3.处理步骤 1. 判断尾指针元素是否非0 , 为真: 头指针+1, 头尾元素交换, 继续判断交换后的尾指针是否非0; 为真: 头指针+1, 头尾元素交换,继续判断交换后的尾指针是否非0(重复上面的);为假: 头指针不动,尾指针+1
4,终结条件, 头尾指针位置相等
当然这个不是优化算法,可以先判断头指针,如果头指针为非0元素可以直接+1,而不要再交换到尾部在判断在交换回去.
再问: 能不能把对应的程序代码帮我写下哈,我不是很懂,谢谢!