C语言的算法问题,想了好久也没有做出来新书求罩啊
有数组int data[nSize],其中隐藏着若干个0,其余都是非0整数。写一个函数int Func(int *data, int nSize),使data数组中,所有的0都移动到数组的后面,非0整数移动数组的前面并保持原来的顺序,返回值为原数据中第一个元素为0的下标。
要求:尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路。
例如,数组中的数组为“15, 27, 0, 35, 9, 0, 22, 17”,则经过Func函数的处理后,其中的数据应变为“15, 27, 35, 9, 22, 17, 0, 0”,Func函数的返回值为6(从0开始编号)。
请大神说一下思路也行 有代码那就更加感激不尽了;
先谢谢了