我有一個學校項目,但我需要一些提示。Bubblesort根據計數重新排列到不同的列表中
我有一個看起來像這樣一個ArrayList:
[0] Document 1
[1] Document 1
[2] Document 2
[3] Document 3
[4] Document 3
[5] Document 3
[6] Document 4
我需要使用冒泡得到一個不同的列表,看起來像這樣(由OCCURENCES每個文件在最初的名單有數量排序):
[0] Document 3
[1] Document 1
[2] Document 2
[3] Document 4
我可以自由地創建一個新的ArrayList或者使用一個外部for循環的完成它 - 但它需要由冒泡排序。
我已經創建了其他實現,基於每個文檔的某些屬性創建一個不同的列表 - 但是現在,當面對每個文檔在列表中出現的次數時,我對丟失一個乾淨的解決方案感到迷茫。
編輯:這是我用於分配的其他地方的執行(「屬性」類似於上面我的問題「文件」)
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--;
}
但氣泡排序的目的是按訂單排序。爲什麼您的輸出中的dos無序? –
對不起,它可能不清楚,所以我編輯的重要。新列表按照第一個列表中出現的次數排序。由於3是原始列表中的三次,因此它的計數最高。 –
好吧,所以你必須使用氣泡排序(你自己的創作?)按頻率排序文檔對象在數組列表中的出現次數,從最大到最小?你有什麼代碼你嘗試過嗎? –