0

これにより、最終的にユーザーは 2 桁の数字を使用して書籍を検索できるようになります。ただし、正しい番号を入力した場合にのみ、タイトルが出力されます。重要な情報が書かれているコードの詳細...

基本的に、binarySearch 配列の所定の値に正しく一致する数値 (refNum) を入力したプログラムの合計が、本のタイトルを出力します。

   class books {

        String refNum, title;

        books (String _refNum, String _title) {
            refNum = _refNum = enterNumberField.getText(); //grab inputted #(continues...)

(続き) 配列に格納された数値と比較するには、# は binarySearch 配列の # と等しくなければなりません。等しい場合、適切なタイトルが出力されます。「Harry Potter」を出力するには、別名 reNum = 4 (また binarySearch[0]) が title[0] と等しくなければなりません

            int refNum[] = new int[2];

            refNum[0] = 4;
            refNum[1] = 6;
            refNum[2] = 10;

            int binarySearch[] = new int[2];

            binarySearch[0] = 4;
            binarySearch[1] = 6;
            binarySearch[2] = 10;

            String title[] = new String[2];

            title[0] = "Harry Potter";
            title[1] = "Chrysalids";
            title[2] = "Lord of the Flies";
       }
   }

これは、入力された数字を使用して一致するかどうかを検索し、一致する場合は対応するタイトルを出力するため、バイナリ検索用になります。

public static Boolean binarySearch(String [ ] A, int left, int right, String V){
         int middle;
         refNum ++;
         if (left > right) {
             return false;
         }

         middle = (left + right)/2;
         int compare = V.compareTo(A[middle]);
         if (compare == 0) {
             return true;
         }
         if (compare < 0) {
             return binarySearch(A, left, middle-1, V);
         } else {
             return binarySearch(A, middle + 1, right, V);
         }
     }

最終的にはこれを出力するコードを追加しますが、最初にクラスと実際の検索で配列を整理する方法を学ぶ必要があります。うまくいけば、私の目標を理解できる方法でこれを説明できました...何かアイデアはありますか?

4

2 に答える 2

0

ご存知のように、Map を使用してルックアップを実行できます。

于 2013-05-22T05:28:59.327 に答える