【发布时间】:2016-08-26 18:53:32
【问题描述】:
我必须在同一个数组中分隔 0 和 1。我已经编写了逻辑,但没有得到正确的输出。你能检查一下代码,让我知道是什么错误。
package Segregate;
public class Segregate {
public void segregate0and1(int arr[], int arr_size){
int i=0;
int j=arr_size-1;
while(j>=i){
switch(arr[i]){
case 0:{
i++;
}
case 1: {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
j--;
}
}
}
}
public static void main(String[] args) {
Segregate seg = new Segregate ();
int arr[] = {0, 1, 0, 1, 0,0,1};
int arr_size = arr.length;
seg.segregate0and1(arr, arr_size);
System.out.print("Array after segregation is ");
for (int k = 0; k < arr_size; k++){
System.out.print(arr[k] + " ");
}
}
}
【问题讨论】:
-
您在第一个案例中缺少休息时间 - docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
-
如果
switch-statement 没有按预期工作,请确保包含default:-label(最好带有一些调试操作)。