【发布时间】:2021-01-25 17:09:21
【问题描述】:
我的任务是解决一个令人费解的问题。我正在尝试将带有重复项的未排序数组转换为没有重复项的已排序数组。我使用选择排序来完成第一部分:
public static void SelectionSort(int [] list) {
int i = 0;
int j = 0;
int indexSmallest = 0;
int temp = 0;
for (i = 0; i < list.length - 1; i++) {
indexSmallest = i;
for (j = i + 1; j < list.length; j++) {
if (list[j] < list[indexSmallest]) {
indexSmallest = j;
}
}
temp = list[i];
list[i] = list[indexSmallest];
list[indexSmallest] = temp;
}
}
排序不是问题——我很难从数组中删除重复项。我脑海中的解决方案是创建一个辅助数组,并遍历输入以检查该元素是否存在于第二个数组中,如果不存在,则将其添加到数组中。我被卡住了,因为我无法创建另一个数组。那么,什么给了?如果我不能创建一个数组来交叉引用并检查我是否有唯一值,我该如何解决这个问题?我无法使用任何内置的 Java 函数。
【问题讨论】:
标签: java sorting duplicates