ユーザーに空のレシピ本が渡され、レシピを入力して並べ替えることができるという問題が発生しました。
本が空で、1 つのレシピと 2 つのレシピ (昇順/降順) がある場合、本は並べ替えられることを知っています。これらはバイナリ検索を使用できます。
しかし、ユーザーが 3 番目のレシピを入力すると、それは「cookies, donut, turkey」(ソート済み) または「cookies, donut, apples」のいずれかであり、ソートされていません。ソートされていない場合は、線形検索を使用する必要があります。
これは私がこれまでに持っているものです
public void sortBook(int choice, boolean ascend) {
RecipeBookComparator comparing = new RecipeBookComparator(choice, ascend);
mList.sort(comparing);}
public class RecipeBookComparator implements Comparator {
private int mSortRBook;
private boolean mAscend;
public RecipeBookComparator (int choice, boolean ascend) {
mSortRBook = choice;
mAscend = ascend;
}
public int compare(Object o1, Object o2) {
Recipe s1 = (Recipe)o1, s2 = (Recipe)o2;
switch (mSortRBook) {
case 1:
if (mAscend == true) {
int compareName = s1.getName().compareTo(s2.getName());
if (compareName != 0) {
return compareName;
}
}
else {
int compareName = s1.getName().compareTo(s2.getName());
if (compareName != 0) {
return compareName * -1;
}
} ///more cases...
何をすべきかはわかっているが、「コード的に」アプローチする方法がわからない