给定一个由正数,负数和0组成的整数数组,将所有为0的元素,挪到数组末尾。要求时间复杂度O(n)

一、代码展示:

package comployeetest;

public class Test1 {

	public static void main(String[] args) {
		int[] arr = { 0, -2, 3,0,0,0, 4, 0, 1, 0, -1, 0, 3 };
		order(arr);
		for (int i : arr) {
			System.out.print(i + ",");
		}

	}
	public static void order(int[] arr) {
		int j = arr.length - 1;
		int i = 0;
		int temp;
		while (i < j) {
			if (arr[j] == 0) {
				j--;
				continue;
			}
			if (arr[i] == 0) {
				temp = arr[j];
				arr[j] = arr[i];
				arr[i] = temp;
				j--;
			}
			i++;
		}
	}
}

 二、结构展示:

三、总结

更多精彩关注:

猜你喜欢

转载自blog.csdn.net/jiankang66/article/details/90641048