将向量中的所有0移至末尾的算法是指,将一个包含整数的向量中的所有0元素移动到末尾,并保持其他元素的相对顺序不变。
算法的基本思想是使用双指针,一个指针i从向量的开头开始遍历,另一个指针j指向当前已经遍历过的非零元素的位置。当指针i指向非零元素时,将这个非零元素赋值给指针j所指向的位置,并将指针j向后移动一位。遍历完成后,将指针j之后的元素全部设为0。
该算法的优点是时间复杂度较低,只需要遍历一次向量,时间复杂度为O(n),其中n是向量的长度。算法的缺点是会改变其他非零元素的相对顺序,但保持了非零元素的相对顺序。
下面是使用C语言实现将向量中的所有0移至末尾的算法代码:
#include <stdio.h>
void moveZerosToEnd(int arr