我已經得到的插入代碼的基礎知識,但我停留在如何將它與例如工作人員名單等,然後另一個條件(名單由AZ,ZA)自定義排序與插入排序
比較分別給予行列:
public static final String[] staffrank = {
"Trainee",
"Junior",
"Senior",
"Administrator"
};
我不得不compareRank
的方法如果返回0意味着他們是同等級別的(工作人員1和2的工作人員)
如果返回-1表示STAF f 1的比人員2
較低秩如果它返回1表示員工1大於人員秩高2
然後,我有人員的空隙主要
Staff[] snames;
int countname=0;
snames = new Staff[50];
snames[countname++] = new Staff("Amy","Trainee");
snames[countname++] = new Staff("Annie","Junior");
snames[countname++] = new Staff("Tom","Administrator");
snames[countname++] = new Staff("Dave","Trainee");
snames[countname++] = new Staff("Gary","Junior");
snames[countname++] = new Staff("Donna","Senior");
然後插入排序列表比較碼
public static void insertionSortbyRank(Staff[] snames, int countname) {
//insertion sort
for(int i =1; i < countname; i++) {
int j = i;
int comparerank = Staff.compareRank(snames[j],snames[j-1]);
String name = snames.getName();
String rank = snames.getRank();
//if staff is lower rank
if(comparerank==-1) {
然後我不確定要放什麼東西在這個while循環 仍然給我一個無序列表
(根據圖表從低他們的行列的順序最高)艾米,生 :
while(j >0 && rank.compareRank(list[j], list[j - 1]) == 1))) {
list[j].rank =[j-1].rank;
list.[j].name = [j-1].name;
j--;
}
然後結束時更換新的值
snames[j].name = name;
snames[j].rank = rank;
輸出假設得到戴夫,見習 安妮,初中 加里,小型 唐娜,高級 湯姆,管理員
任何幫助將不勝感激..謝謝你
它是作業嗎? – soulcheck
它被標記爲「家庭作業」,所以我認爲它是.. :) –
這是我的一個考題.. 但我們不會知道答案,因爲它是決賽。 我甚至沒有標記家庭作業......這是那個「編輯」我的帖子 –