ある書籍の検索アルゴリズムの2分検索の説明で、下記のような例が示されていました。
(これはその例を私がプログラム化したのもので、書籍からの転写ではありません。)
そこで疑問なんですが、このプログラムは確かに動作こそしますが、
ループの中の$middleは小数になりますよね。
添え字が小数になる事は、正しい配列の処理といえるのでしょうか?
小数に対して、丸めるなどの処理を加えるべきなのでしょうか?
よろしくお願いします。
------------------------------------------------------------
「$arrayの中から、$xを検索します」
$array = array(1,2,3,4,5,7,10,12);
$x = 10;
$low = 1;
$high = count($array);
$is_exist = false;
while( $low <= $high and $is_exist == false ) {
$middle = ( $low+$high )/2;
if( $array[$middle] == $x ) {
$is_exist = true;
} else if ( $array[$middle] < $x ) {
$low = $middle+1;
} else if ( $array[$middle] > $x ) {
$high = $middle-1;
}
}
if ($is_exist) {
echo "true";
} else {
echo "false";
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
行列
-
PHPでCSVを出力するさいに、ル...
-
スカラーのベクトル微分
-
C言語の配列をPush(追加)する...
-
比較関数とSQL
-
Pager::factory()の使い方がわ...
-
プログラミングのPythonのnoteb...
-
MySQLのデータをPHPで多次元...
-
ファイルの書き込みについて教...
-
PHPに関する質問です
-
PHP初心者の質問object(stdClass)
-
ファイルの逆読みってできますか?
-
While文を使って配列の中身を全...
-
ログファイルの古い日付の行を...
-
サイト名を取得するPHP
-
行数が30万件ほどあるCSVから、...
-
PHPの構文で間違えが分からない
-
SimpleXML関数で取得したXML要...
-
配列を回すとき、最後の要素だ...
-
PHP5でCSVの指定行データだけを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングのPythonのnoteb...
-
スカラーのベクトル微分
-
特定の文からメールアドレスの...
-
CArrayの要素としてCStringArra...
-
C言語 最大値と最小値を求めて...
-
行列
-
読み(あ行~わ行)ごとに分け...
-
配列の要素(value)に、変数を...
-
C言語の配列をPush(追加)する...
-
STLのvectorで作った配列をメン...
-
【PHP】配列のキー名の修正は可...
-
php で1から100までの素数の表...
-
Perlで重複行を削除したい
-
fgetc関数について
-
CArrayのソート
-
ファイルの書き込みについて教...
-
配列の添え字が小数だとどうなる?
-
PHPのmin関数、「1」以上の数値...
-
forとかで連番の変数を一気に格...
-
delphi 2次元配列がわかりません
おすすめ情報