ホームページ バックエンド開発 PHPチュートリアル PHPコードで書かれた2点検索プログラム

PHPコードで書かれた2点検索プログラム

Jun 13, 2016 pm 01:22 PM
key mid quot

PHP コードで書かれた二分探索プログラム
function BinSearch($a,$low,$heigh,$key){
if($low > $heigh){
return null;
}else{
$mid = (int)($low+$heigh)/2;
$mid = ceil($mid);
// echo "a[] : ".$a[$mid]."
";
// echo "key:".$key."
";
if($key = = $a[$mid]){
return $mid;
echo $mid;
}elseif($a[$mid] < $key){
$low = $mid + 1 ;
BinSearch($a, $low, $heigh, $key);
}elseif ($a[$mid] > $key){
$heigh = $mid - 1 ;
BinSearch($a, $low, $heigh, $key);
}
return null;
}
}
$a = array(0,1,2,3 , 4,5,6,7,8,9);
$key = 3;
$result = BinSearch($a, 0, 9, $key);
echo "結果:"。 result."
";
?>
期待した結果が得られない理由を教えてください。プログラムの何が問題なのでしょうか?

-----解決策---------
再帰呼び出しには戻り値はありません

PHP コード
function BinSearch($a,$low,$heigh,$key){
  if($low > $heig){
    null を返します。
  }それ以外{
    $mid = (int)($low+$heigh)/2;
    $mid = ceil($mid);
    if($key == $a[$mid]){
      $mid を返します。
      エコー $mid;
    }elseif($a[$mid] < $key){
      $low = $mid + 1;
      return BinSearch($a, $low, $heigh, $key);//ここ
    }elseif ($a[$mid] > $key){
      $heigh = $mid - 1 ;
      return BinSearch($a, $low, $heigh, $key);//そしてここ
    }
    null を返します。
  }
<div class="clear"></div>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SQL の ID 属性は何を意味しますか? SQL の ID 属性は何を意味しますか? Feb 19, 2024 am 11:24 AM

SQL における Identity とは何ですか? 具体的なコード例が必要です。SQL では、Identity は自動インクリメント数値の生成に使用される特別なデータ型です。多くの場合、テーブル内のデータの各行を一意に識別するために使用されます。 Identity 列は、各レコードが一意の識別子を持つようにするために、主キー列と組み合わせてよく使用されます。この記事では、Identity の使用方法といくつかの実用的なコード例について詳しく説明します。 Identity の基本的な使用方法は、テーブルを作成するときに Identity を使用することです。

SpringBoot が Redis キー変更イベントを監視する方法 SpringBoot が Redis キー変更イベントを監視する方法 May 26, 2023 pm 01:55 PM

1. 機能の概要 キースペース通知を使用すると、クライアントはチャネルまたはパターンをサブスクライブすることで、何らかの方法で Rediskey の変更を変更するイベントを受信できます。キーのキーを変更するすべてのコマンド。 LPUSHkeyvalue[value…] コマンドを受信したすべてのキー。 db データベース内の期限切れのキーすべて。イベントは Redis のサブスクリプションおよび公開機能 (pub/sub) を通じて配布されるため、サブスクリプションおよび公開機能をサポートするすべてのクライアントは、変更を加えることなくキースペース通知機能を直接使用できます。 Redis の現在のサブスクリプション機能と公開機能は fireandforget 戦略を採用しているため、プログラムが

Mid関数の使い方 Mid関数の使い方 Aug 09, 2023 am 11:08 AM

Mid 関数は、文字列から指定された長さの部分文字列をインターセプトするために使用されます。具体的な方法は次のとおりです: 1. VB の Mid 関数、構文は "Mid(string, start[, length])"; 2. Mid JavaScript の関数、構文 "string.slice(startIndex[, endIndex])"; 3. Python の Mid 関数、構文 "string[startIndex:endIndex]"。

Redisでキー値が一括削除される問題を解決する方法 Redisでキー値が一括削除される問題を解決する方法 May 31, 2023 am 08:59 AM

発生した問題: 開発プロセス中に、login_logID (ID は変数) など、特定のルールに従ってバッチで削除する必要があるキーが発生します。ここで、「login_log*」などのデータを削除する必要がありますが、redis 自体はバッチクエリのみあり、クラスキー値に対するコマンドキーはありますが、特定のクラスを一括削除するコマンドはありません。解決策: 最初にクエリを実行してから削除し、xargs を使用してパラメータを渡します (xargs はパイプまたは標準入力 (stdin) データをコマンド ライン パラメータに変換できます)。最初にクエリ ステートメントを実行してから、クエリされたキー値と元の del パラメータを削除します。消去。 redis-cliKEYSkey* (検索条件)|xargsr

パッチ不可能な Yubico 2 要素認証キーの脆弱性により、ほとんどの Yubikey 5、セキュリティ キー、YubiHSM 2FA デバイスのセキュリティが侵害される パッチ不可能な Yubico 2 要素認証キーの脆弱性により、ほとんどの Yubikey 5、セキュリティ キー、YubiHSM 2FA デバイスのセキュリティが侵害される Sep 04, 2024 pm 06:32 PM

パッチ不可能な Yubico の 2 要素認証キーの脆弱性により、ほとんどの Yubikey 5、セキュリティ キー、および YubiHSM 2FA デバイスのセキュリティが破られています。 Feitian A22 JavaCard および Infineon SLB96xx シリーズ TPM を使用するその他のデバイスも脆弱です。すべて

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Java で JSONObject に特定のキーが含まれているかどうかを確認するにはどうすればよいですか? Java で JSONObject に特定のキーが含まれているかどうかを確認するにはどうすればよいですか? May 08, 2023 pm 12:25 PM

KeyJSONObject が JSONObjectjsonObj=newJSONObject();jsonObj.put("version","1.0.0");//バージョン番号 jsonObj.put("encoding","UTF-8");//エンコーディング メソッドに存在するかどうかを確認します。 vesion 属性が jsonObject に存在するかどうかを確認します。 jsonObj.has("version");// k が json 文字列に存在するかどうかを確認するには true を返します。

ミッドのフォーマットは何ですか? ミッドのフォーマットは何ですか? Apr 23, 2021 pm 03:45 PM

ミッド フォーマットは MIDI から継承されたオーディオ フォーマットです。MID ファイルは録音されたサウンドではなく、サウンド情報を記録し、サウンド カードに音楽の再生方法を指示する一連の命令です。ミッド ファイルには主に次のものが含まれます。 2 つの部分はヘッダー データとオーディオ トラック データです。

See all articles