0

私が直面している質問についてここにいます。

次のコードをデスクでチェックする方法を考えていました。

データセット

0 1  2 3  4   5  6  7   8   9  10  11   12  13  14 15

4 7 19 25 36 37 50 100 101 205 220 271 306 321 456 500 /* Numbers are a bit messed up */

アルゴリズム binarySearch

SET found TO FALSE
SET bottom TO zero
SET top TO sizeOfList-1
WHILE ( NOT found AND bottom <= top )
    SET middle TO (bottom+top) DIV 2
    IF searchValue < list element middle THEN
        SET top TO middle-1
    ELSE
        IF searchValue > list element middle THEN
            SET bottom TO middle+1
        ELSE
            SET position TO middle
            SET found TO TRUE
        ENDIF
    ENDIF
ENDWHILE

IF NOT found THEN
    RETURN –1
ELSE
    RETURN position
ENDIF
4

1 に答える 1

1

これを行う最善の方法は、最初に表を作成し、各変数 ( foundbottomtopなど) ごとに 1 つの列を作成することです。次に、コンピューターに「なり」、プログラム コードを一度に 1 行ずつ実行し (追跡するためにアクセスする各行番号を書き留めるのがおそらく最善です)、表の値に基づいて条件付き分岐を実行します。変数を変更するたびに、更新された値を含む新しい行をテーブルに追加します。最終的には、ステートメントに到達する必要があり、returnそれで完了です。

于 2011-06-07T19:22:58.247 に答える