程序算法编程:移动零问题

来源:互联网 发布:两个有序数组的中位数 编辑:程序博客网 时间:2024/06/09 22:15

给定一个数组,将里面的“0”元素移至数组的末尾,而其他元素相对位置不变问题。

例如:

输入{1,0,0,3,2,4}

输出{1,3,2,4,0,0}

方法1:

顺序取出数,如果是0,则与后面非零元素调换。

java代码如下:

    public void moveZeroes(int[] nums) {   int k = 0;    for(int i = 0;i < nums.length;i++){ //顺序取数    if(nums[i] == 0){    k=i+1;    for(int j = k;j < nums.length;j++){ //与后最近非零元素调换    if(nums[j] != 0){        nums[i] = nums[j];        nums[j] = 0;        break;    }    }      }    }    }
最坏情况下算法的时间复杂度应该是n*(n-1)/2为O(n^2).

0 0