Bubblesort 根据计数将重复项排序到不同的列表中
Bubblesort sort duplicates into distinct list based on count
我有一个学校项目,但我需要一些提示。
我有一个如下所示的 ArrayList:
[0] Document 1
[1] Document 1
[2] Document 2
[3] Document 3
[4] Document 3
[5] Document 3
[6] Document 4
我需要使用 Bubblesort 来获得如下所示的不同列表(按每个文档在原始列表中出现的次数排序):
[0] Document 3
[1] Document 1
[2] Document 2
[3] Document 4
我可以自由地创建一个新的 ArrayList 或使用一个外部 for 循环来完成它 - 但它需要通过 Bubblesort 进行排序。
我已经创建了其他实现,这些实现根据每个文档的某些属性创建不同的列表 - 但现在面对每个文档在列表中出现的次数时,我无法找到一个干净的解决方案。
编辑:这是我用于作业其他部分的实现("attribute" 类似于我上面问题中的 "document")
int r = attributes.size() - 1;
boolean swapped = true;
while(swapped && r >= 0) {
swapped = false;
for(int i = 0; i < r; i++) {
Attributes current = attributes.get(i);
Attributes next = attributes.get(i + 1);
if(current.occurrence > next.occurrence) {
swapped = true;
attributes.set(i, next);
attributes.set(i + 1, current);
}
}
r--;
}
给你一个样板示例,你可以使用这样的东西。
List<Integer> arrList = Arrays.asList( 5, 0, 0, 2 );
int freq = Collections.frequency(arrList, "0);
System.out.println("Frequency of '0' is: "+freq);
}
我有一个学校项目,但我需要一些提示。
我有一个如下所示的 ArrayList:
[0] Document 1
[1] Document 1
[2] Document 2
[3] Document 3
[4] Document 3
[5] Document 3
[6] Document 4
我需要使用 Bubblesort 来获得如下所示的不同列表(按每个文档在原始列表中出现的次数排序):
[0] Document 3
[1] Document 1
[2] Document 2
[3] Document 4
我可以自由地创建一个新的 ArrayList 或使用一个外部 for 循环来完成它 - 但它需要通过 Bubblesort 进行排序。
我已经创建了其他实现,这些实现根据每个文档的某些属性创建不同的列表 - 但现在面对每个文档在列表中出现的次数时,我无法找到一个干净的解决方案。
编辑:这是我用于作业其他部分的实现("attribute" 类似于我上面问题中的 "document")
int r = attributes.size() - 1;
boolean swapped = true;
while(swapped && r >= 0) {
swapped = false;
for(int i = 0; i < r; i++) {
Attributes current = attributes.get(i);
Attributes next = attributes.get(i + 1);
if(current.occurrence > next.occurrence) {
swapped = true;
attributes.set(i, next);
attributes.set(i + 1, current);
}
}
r--;
}
给你一个样板示例,你可以使用这样的东西。
List<Integer> arrList = Arrays.asList( 5, 0, 0, 2 );
int freq = Collections.frequency(arrList, "0);
System.out.println("Frequency of '0' is: "+freq);
}