我正在對二維數組進行排序並遇到一些問題。當我排序它開始爲第一對夫婦工作,並沒有完成。這是我的代碼,然後我將發佈我的輸出。sectionArray []的第一部分包含2個部分。在Section [] []的第二部分包含不同的學生對象。我需要按字母順序爲每個部分對這些對象的字符串名稱進行排序。按字母順序對二維數組進行排序
public void sortByName(){
String temp;
for(int i = 0; i < 2; i++){
for (int a = 0; a < sectionArray[i].length-1; a++){
if (sectionArray[i][a].getName().compareToIgnoreCase(sectionArray[i][a+1].getName()) > 0){
temp = sectionArray[i][a].getName();
sectionArray[i][a].setName(sectionArray[i][a+1].getName());
sectionArray[i][a+1].setName(temp);
}
}
}
}
輸出:
Progress Report
Section 1
Johnson 90.6 A
Aniston 81.2 B
Cooper_ 82.2 B
Gupta__ 72.2 C
Blair__ 52.2 F
Section 2
Clark__ 59.2 F
Kennedy 63.4 D
Bronson 90.0 A
Sunny__ 84.8 B
Smith__ 75.4 C
Diana__ 68.8 D
AFTER SORTING THE 2D ARRAY
Progress Report
Section 1
Aniston 90.6 A
Cooper_ 81.2 B
Gupta__ 82.2 B
Blair__ 72.2 C
Johnson 52.2 F
Section 2
Clark__ 59.2 F
Bronson 63.4 D
Kennedy 90.0 A
Smith__ 84.8 B
Diana__ 75.4 C
Sunny__ 68.8 D
發佈的輸入將是有益的 – Magnus
有在你的第二個'for'週期一個錯誤,你沒有考慮數組的最後一個元素。你的泡泡分類是錯誤的。你只對數組做一次迭代,算法需要重做這個,直到數組沒有變化 - >數組被排序。按照答案中的建議更好地使用內置合併排序。 – Admit