二分探索
今日は「二分探索」について話します。二分探索の考え方は、逐次配列内の特定の配列の中央の数値とサイズを毎回比較することです。二分検索の欠点は、配列が順次である必要があることです (データを小さいものから大きいものに並べ替える場合を例に挙げます)。利点は、クエリ効率が非常に高く、時間計算量が log2n であることです。この検索方法がビッグデータで使用されるほど、その効果はより明らかになります。ソース コードと単体テストは以下に添付されています。ソース コードには 2 つのアルゴリズムが含まれています。1 つはループ、もう 1 つは再帰です。
ソース コード:
。 (再帰的メソッド)
/// 配列が並べ替えられていないデータの場合は、
/// 検索する値が配列内に存在しない場合は、-1 を返します。 ️ param>
,,,,,,,,,,,,,,,,, if (array == null) { throw new ArgumentException("array is null") }
if (array[array.長さ - 1] == 値) { return array.Length - 1; }
0 、array.Length - 1、value);
private static int Search(int[] array, int beginIndex, int endIndex, int value)
if(endIndex == beginindex){return beginindex}}> (ループメソッド)
/// 配列は小さいデータから大きいデータの順に並べ替える必要があります。並べ替えられていないデータの場合は、
/// 検索する値が配列内に存在しない場合は、-1 を返します。 ️ Param & gt;
/// & lt; return & gt; 検索したい値が配列に存在しない場合は、-1 に戻ります & lt;/return; beginIndex = 0; / 2;
if (値 if (value == array[middle]) { return middle; }
if (値 > array[middle]) { beginIndex = middle; }
}
}
单元测试:
[TestMethod()]
[DeploymentItem("ZjyWorkCodeLibrary.dll")]
public void SearchTest()
{
ランダムランダム = new Random();
int[] array2 = new int[100];
for (int i = 0; i {
array2[i] =random.Next(0, 1000);
}
int[] array3 = BitmapSort.Sort( array2);
for (int i = 0; i {
Assert.AreEqual(BinarySearch.Search(array3, array3[i]), i);
As sert.AreEqual(BinarySearch.Search2 (array3, array3[i]), i);
}
Assert.AreEqual(BinarySearch.Search(array3, 9999), -1);
Assert.AreEqual(BinarySearch.Search2(array3, 9999), -1);
}
更多二分法查找介绍相关文章请关注PHP中文网!

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック









