排数问题

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保 持非零元素的相对顺序。
示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0]

public class paishu {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  int[] nums = {0, 1, 0, 3, 12};                    //创建数组
  int[] later = new int[nums.length];           //创建排序后的数组
  int index = 0;                                           //定义一个位置变量
  for(int i = 0; i < later.length; i++) {           //将创建排序后的数组清0
   later[i] = 0;  
   }  
  for(int i = 0; i < nums.length; i++) {    
   if(nums[i] != 0) {                                  
    later[index++] = nums[i];                       //将原数组内不为0的数按原位置存入新建的数组内
    }  
   }    
  System.out.println("移动前的数组为:"); //遍历打印移动前的数组
  for(int i = 0; i < nums.length; i++) {  
   System.out.print(nums[i] + " "); 
   }  System.out.println();  
   System.out.println("移动后的数组为:"); //打印移动后的数组
   for(int i = 0; i < later.length; i++) { 
    System.out.print(later[i] + " "); 
    }  System.out.println();
  }

 }
posted @ 2021-03-12 16:26  纯白白  阅读(30)  评论(0)    收藏  举报