将数组中的0放到数组最右边,剩下的元素顺序不变,要求最快

/ C++ / 没有评论 / 438浏览

将数组中的0放到数组最右边,剩下的元素顺序不变

思路:找出不是0的数,放在一个全部置为0的和原数组一样大小的数组中

void Find_Zero()
{
            in arr[11] = {2,3,0,1,0,4,4,0,8,3,5};
            int len = sizeof(arr)/sizeof(int);
            int ret[len];
            memset(ret,0,sizeof(ret));
            int count = 0;
            for (int i = 0; i < arr.Length; i++)
            {
                if (arr[i] != 0)
                {
                    ret[count] = arr[i];
                    count = count + 1;
                }
            }
}

如有更好的解决办法,请在评论回复我,谢谢