/**
* @author zhaoliangyuan
* @E-mail zhao19860603@163.com
* @dateTime 2010/10/23 上午 11:58:25 类说明:
* 将数组中的 0 排在最左边,非0元素顺序不变
* 例:0,5,3,0,1
* 排序后 0,0,5,3,1
*/
public class Test27 {
public static void main(String[] args) {
int[] array = { 1, 0, 3, 0, 0, -34, 786, 99, 0, 6, 100, 0, 0, 99, 0, 10, 4 };
int[] arr = move2(array);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
public static int[] move2(int[] array) {
// 自右向左扫描,将所有非零元素紧凑到右侧
int low, high;
for (low = array.length - 1, high = low; low >= 0; low--)
if (array[low] != 0) {
array[high] = array[low];
high--;// 更新紧凑序列的最左侧元素
}
// 将余下所有元素全部置为0
for (; high >= 0; high--)
array[high] = 0;
return array;
}
}
将数组中的 0 排在最左边,非0元素顺序不变
最新推荐文章于 2022-06-06 17:56:11 发布