给出大小为N的数组A,其中包含0、1和2;您需要按升序对数组进行排序。
输入: 第一行包含一个整数“ T”,表示测试用例的总数。然后是T测试用例。每个测试用例包含两行输入。第一行表示数组N的大小。第二行包含数组A的元素,以空格分隔。
下面是Java代码 为什么最高的元素不会出现在数组的后端?
framework search paths
用于输入:
copy-framework
您的输出是:
class GFG {
public static void main (String[] args) {
//code
Scanner sc = new Scanner(System.in);
int T =sc.nextInt();
while(T>0)
{
int N= sc.nextInt();
byte A[]=new byte[N];
for(int i=0;i<N;i++){
A[i]=sc.nextByte();
}
GFG g= new GFG();
g.sortarray(A,N);
for(int i=0;i<N;i++){
System.out.print(A[i]+" ");
}
System.out.println();
T--;
}
sc.close();
}
public static void sortarray(byte[] A,int n)
{
int low=0;
int mid=0;
int high=A.length-1;
byte temp=0;
for(int i=0;i<n;i++){
if(A[i]==0){
temp=A[low];
A[low]=A[i];
A[i]=temp;
low++;
mid++;
}
if(A[i]==2){
temp=A[high];
A[high]=A[i];
A[i]=temp;
high--;
}
else{
++mid;
}
}
}
}
答案 0 :(得分:0)
尝试在IDE中逐步调试代码或在白板上跟踪代码。算法有误