#include <iostream>
using namespace std;
//方法一
void moveZero1(int arr[], int n){
int zero = 0;
for(int i = 0; i < n; i++){
if(0 != arr[i]){
arr[i - zero] = arr[i];
}else{
zero++;
}
}
int i = n - zero;
while(i < n){
arr[i] = 0;
i++;
}
}
//方法二(快排的思想)
void moveZero2(int arr[], int n){
int j = 0;
for(int i = 0; i < n; i++){
if(arr[i] != 0){
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
j++;
}
}
}
void Print(int arr[], int n){
for(int i = 0; i < n; i++){
cout << a[i] << " ";
}
cout << endl;
}
int main(){
int arr[] = {1,2,4,0,6,3,0,8};
moveZero1(arr, 8);
Print(arr,8);
moveZero2(arr, 8);
Print(arr,8);
return 0;
}
把数组中所有的零移动到最后面
最新推荐文章于 2023-04-14 20:43:07 发布