优化代码import java.util.*;import java.util.Scanner;class Test5{ public static void main(String[] args) { int i,j,m,n,t,x,k; int[] a=new int[100]; int[] b=new int[100]; int[] c=new int[100]; int[] d=new int[100]; Scanner in=new Scanner(System.in); i=0;j=0; while(in.hasNextInt()) a[i++]=in.nextInt(); while(in.hasNextInt()) b[j++]=in.nextInt(); k=0; for(m=0;m<i;m++) c[k++]=a[m]; for(n=0;n<j;n++) c[k++]=b[n]; for(i=0;i<k-1;i++) for(j=i+1;j<k;j++) if(c[i]<c[j]) { t=c[i]; c[i]=c[j]; c[j]=t; } j=0;x=0; for(i = 0;i < k;i++) { if(c[i] == x) { d[j++]=x; continue; } if(c[i] == c[i+1] && i+1 < k ) { x = c[i]; continue; } System.out.printf("%d ",c[i]); } System.out.printf("\n"); for(i=0;i<j;i++) System.out.printf("%d ",d[i]); }}
时间: 2024-04-01 07:31:38 浏览: 20
这段代码可以进行如下优化:
1. 可以使用 ArrayList 代替数组,避免数组过大或者过小的问题。
2. 可以将输入和合并数组的过程合并到一起,避免重复遍历输入数组。
3. 可以使用 Set 集合来实现去重,避免需要额外的数组来存储重复的元素。
4. 可以使用 Arrays.sort() 方法来代替冒泡排序,提高排序效率。
改进后的代码如下:
import java.util.*;
public class Test5 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
List<Integer> list = new ArrayList<>();
Set<Integer> set = new HashSet<>();
while (in.hasNextInt()) {
int num = in.nextInt();
if (!set.contains(num)) {
list.add(num);
set.add(num);
}
}
while (in.hasNextInt()) {
int num = in.nextInt();
if (!set.contains(num)) {
list.add(num);
set.add(num);
}
}
Collections.sort(list, Collections.reverseOrder());
List<Integer> duplicateList = new ArrayList<>();
int lastValue = Integer.MAX_VALUE;
for (int i = 0; i < list.size(); i++) {
int num = list.get(i);
if (num == lastValue) {
duplicateList.add(num);
} else {
System.out.print(num + " ");
lastValue = num;
}
}
System.out.println();
for (int i = 0; i < duplicateList.size(); i++) {
System.out.print(duplicateList.get(i) + " ");
}
}
}