検索
ホームページコンピューターのチュートリアルコンピュータ知識再帰アルゴリズムを使用して Java バイナリ検索を実装する方法

Java で二分探索の再帰アルゴリズムを実装する方法

パブリック クラス バイナリ再帰検索 {

public static void main(String[] args) は、Java プログラムのエントリ ポイントであり、プログラム実行の開始位置です。この方法では、プログラムの主要なロジックと機能を記述することができます。このメソッドは、Java 仮想マシンによって呼び出されて実行される前に、特定の形式で定義されている必要があります。 main メソッドのパラメーター リストの args は、コマンド ライン パラメーターを受け取るために使用できる文字列配列です。 mainメソッドにコードを記述することで、出力、計算、ループ、条件判定などの様々な機能を実装することができます。 {

//配列を定義します。二分探索配列は順序付き配列でなければならないことに注意してください。

int[] arr = { 1, 3, 5, 7, 9, 11, 13, 15, 17 }; は、9 つ​​の要素を含む整数配列の宣言および初期化ステートメントです。各要素の値は 1、3、5、7、9、11、13、15、17 です。このようにして、arr という名前の整数配列を作成し、それに初期値を割り当てます。後続のプログラムでは、この配列を使用して、検索、並べ替え、カウントなどのさまざまな操作を実行できます

//検索後の戻り値を受け入れます: インデックス値、そうでない場合は -1;

//テスト検索要素: 9

int a = binarySearch(arr, 9, 0, arr.length - 1);

System.out.println("検索されている番号のインデックス位置は次のとおりです: " a);

}

//パラメータ リストは、検索する配列、検索する番号、先頭のインデックス、末尾のインデックスです。

public static int binary(int[] arr, int key, int start, int end) // 再帰

{

//アクセスするたびに中間インデックス値を作成します。

int mid = (スターエンド) / 2;

検索対象の番号が開始インデックスより小さいか、終了インデックスより大きい場合、または開始インデックスが終了インデックスより大きい場合、その番号は存在しないことを意味し、-1 が返されます。

if (キー arr[終了] || 開始 > 終了) {

-1 を返す;

}

//中央の値が検索対象の数値より小さい場合は、ヘッダー インデックスを再定義して中央の 1 の位置に移動し、数値の半分を除外できるようにします。

if (arr[mid]

//再帰を開始します!

return binary(arr, key, mid 1, end); // 配列の後半で二分探索を続行します

//それ以外の場合、中央の値が検索対象の数値より大きい場合は、末尾のインデックスを中央の位置 -1 に戻して、数値の半分を除外できるようにします。

} else if (arr[mid] > key) {

//再帰を開始します!

return binary(arr, key, start, mid - 1);

###} それ以外 {###

//そうでない場合は、見つかってインデックスに戻ります。

途中で戻る;

}

}

}

再帰アルゴリズムを使用して Java バイナリ検索を実装する方法マスター プログラミング JAVA 言語は再帰アルゴリズムと 1 2 3 4 100 または 11 13 15 を使用します

最初の質問:

パブリック クラス CalSum {

public static void main(String[] args) は、Java プログラムのエントリ ポイントであり、プログラム実行の開始位置です。この方法では、プログラムの主要なロジックと機能を記述することができます。このメソッドは、Java 仮想マシンによって呼び出されて実行される前に、特定の形式で定義されている必要があります。 main メソッドのパラメーター リストの args は、コマンド ライン パラメーターを受け取るために使用できる文字列配列です。 main メソッドにコードを記述することで、出力、計算、ループ、条件判定などのさまざまな機能を実装できます。

{

CalSum calSum = new CalSum();

int result = calSum.calculate(100); // calSum オブジェクトの Calculate メソッドを呼び出し、パラメータ 100 を渡し、結果を result 変数に代入します。

System.out.println("1 2 3 ... 100 の合計は次と等しい" 結果);

}

パブリック int 計算(int 数値)

{

int 結果 = 0;

if(数値 == 1)

{

結果 = 1;

}

###それ以外###

{

result = number Calculate(number - 1); 結果は、現在の数値と戻り値の数値 1 を加算することになります。この式は再帰的に計算できます。再帰呼び出しが行われるたびに、number の値は 1 ずつ減らされ、number が 1 に等しくなるまで再帰が停止されます。再帰呼び出しの戻り値は、最終結果に継続的に蓄積されます。このようにして、シーケンスの合計を取得できます。

}

結果を返す;

}

}

Java の再帰と反復のアルゴリズムとは何ですか

反復は通常のループです。

例: 1 から 10 まで加算します

int sum=0

for(int i=0;i sum=合計 i;

}

再帰とは、関数がそれ自体を直接的または間接的に呼び出すことを意味します。

例: 昔々、お寺に大きな僧侶と小さな僧侶がいました。大きな僧侶は小さな僧侶に話をするように頼みました。小さな僧侶は、昔々、大きな僧侶がいましたと言いました。お寺の小さな僧侶がいます。小さな僧侶は大きな僧侶に話をしてほしいと頼みました。物語の中で、大きな僧侶は続けて、「むかしむかし、お寺に大きな僧侶と小さな僧侶がいました。彼らは修行をしました」と言いました。そして毎日一緒に仏教を学びました。

再帰の特徴:

3 つの条件が必要です:

1. 間接的または直接的に自分自身を呼び出します。

2. ゲームをプレイする際には、大僧侶の口が乾いたら話を聞かなくなるなど、ゲームを終了するための条件を必ず設定してください。終了条件が設定されていない場合、ゲームが無限ループに陥る可能性があります。

###3。論理本体 (やりたいこと) が必要です;

パブリック int sum(int x){

if(x

x を返す;

}

return x sum(x-1);

}

int s=10;

int total=sum(s);

この例では、sum 関数は常にそれ自体を呼び出し、return x sum(x-1);

sum には終了条件があります。x

最終結果は 10 9 8 7 ... 1

を返します。

多くの場合、反復と再帰の両方で同じ機能を実現できますが、反復では完了できない機能もあります。さらに、再帰コードはより簡潔であり、再帰を上手に使用するとコードの品質を向上させることができます。

以上が再帰アルゴリズムを使用して Java バイナリ検索を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はExcel办公网で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Outlook 365に表示されない添付ファイルを修正する方法は?Outlook 365に表示されない添付ファイルを修正する方法は?Apr 19, 2025 am 12:50 AM

Outlook 365で添付ファイルをダウンロードまたは送信するのに苦労していますか?時々、Outlookは何らかの未知の理由でそれらを表示しないため、それらを見ることができません。 PHP.CN Webサイトのこの投稿では、表示されていない添付ファイルの使用ヒントをいくつか収集します。

V Rising Connectionがタイムアウトする方法は?ここに5つのソリューションがあります! - ミニトールV Rising Connectionがタイムアウトする方法は?ここに5つのソリューションがあります! - ミニトールApr 19, 2025 am 12:49 AM

V Rising Playerが近くにいる、またはすでにいっぱいのサーバーに参加しようとすると、「V Rising Connection Timed」問題に遭遇する可能性があります。あなたがそれらの1つである場合、あなたはソリューションを取得するためにPHP.CNからこの投稿を参照することができます。今、あなたの読書を続けてください。

Windowsセキュリティでリアルタイム保護をオン/オフにする方法は? - ミニトールWindowsセキュリティでリアルタイム保護をオン/オフにする方法は? - ミニトールApr 19, 2025 am 12:48 AM

Windowsは、Windowsセキュリティを介してリアルタイム保護を供給します。しかし、この機能は、危険だと思う何かをすることを妨げる可能性があります。この状況では、一時的にリアルタイム保護をオンにすることをお勧めします。このPHP.CNの投稿では、その方法が表示されます

Windows 11 24H2またはWindows 12?これは重要ですか?Windows 11 24H2またはWindows 12?これは重要ですか?Apr 19, 2025 am 12:47 AM

Microsoftは、来年のWindows Updatesの非常に早い段階で作業を開始しました。最近の噂では、2024年の次のアップデートはWindows 12ではなくWindows 11 24H2である可能性があると述べています。現在、すべてが不確かです。 php.cnは、関連するインフォールを見るためにあなたを連れて行きます

修正:要求された操作を実行できません - エラー0x80030001 -minitool修正:要求された操作を実行できません - エラー0x80030001 -minitoolApr 19, 2025 am 12:46 AM

エラー0x80030001は、多くの場合、ファイルをコピーしようとしているときに発生します。エラーコードには、「要求された操作を実行できない」というメッセージが添付されます。このエラーに苦労している場合は、この記事をphp.cn wで読むことができます

Windows 11 KB5034765のダウンロードとインストール方法Windows 11 KB5034765のダウンロードとインストール方法Apr 19, 2025 am 12:45 AM

2024年2月13日、Microsoftは、Windows 11 22H2およびWindows 11 23H2用にKB5034765(OSが22621.3155および22631.3155を構築する)をリリースしました。このセキュリティアップデートは、多くの新しい改善とバグ修正をもたらします。 Windows1をダウンロードしてインストールする方法を学ぶことができます

デバイスマネージャーから欠落しているパワー管理タブ ​​- トップガイドデバイスマネージャーから欠落しているパワー管理タブ ​​- トップガイドApr 19, 2025 am 12:44 AM

いくつかのコンピューターの問題を修正する必要がある場合、デバイスマネージャーは広く使用されています。問題のあるデバイスを確認し、デバイスドライバーをアンインストールまたは更新することを決定できます。また、デバイスマネージャーに電力管理設定を設定することもできます。ただし、f

Windows 11/10でWindowsバックアップをデフォルトにリセットする2つの方法Windows 11/10でWindowsバックアップをデフォルトにリセットする2つの方法Apr 19, 2025 am 12:43 AM

バックアップと復元(Windowsバックアップ)が機能しない場合、デフォルトにリセットすることを選択できます。 Windows 11/10でWindowsバックアップをデフォルトに復元する方法は? php.cnは、このことを2つの方法で簡単に実行するように導き、それらを見に行きましょう。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 Mac版

SublimeText3 Mac版

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。