検索
ホームページシステムチュートリアルLinuxアルゴリズム - 検索をスキップ

アルゴリズム - 検索をスキップ

Feb 16, 2024 am 10:42 AM
linuxLinuxチュートリアルレッドハットLinuxシステムLinuxコマンドLinux 認定レッドハットリナックスLinuxビデオ

アルゴリズム - 検索をスキップ

たとえば、サイズ n の配列 arr[] とサイズ m のブロック (ジャンプ対象) があるとします。次に、インデックス arr[0]、arr[m]、arr[2m]... ..arr[km] などを検索します。間隔を見つけたら (arr [km]

次の配列を検討します: (0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610)。配列の長さは 16 です。スキップされるブロック サイズが 4 であると仮定すると、スキップ検索では次の手順で 55 が見つかります。

ステップ 1: インデックス 0 からインデックス 4 にジャンプします;
ステップ 2: インデックス 4 からインデックス 8 にジャンプします;
ステップ 3: インデックス 8 からインデックス 16 にジャンプします;
ステップ 4: インデックス 16 の要素は 55 より大きいため、インデックス 9 まで 1 ステップ戻ります。 ステップ 5: インデックス 9 から線形検索を実行して要素 55 を取得します。

スキップする最適なブロック サイズはどれくらいですか? 最悪の場合、最後にチェックされた値が検索対象の要素より大きい場合、n/m ジャンプを実行し、線形検索で m-1 比較を実行する必要があります。したがって、最悪の場合の合計比較数は ((n/m)m-1) になります。 m=√nのとき、関数((n/m)m-1)の値が最小値となります。したがって、最適なステップ サイズは m = √n です。
リーリー

出力:

番号 55 はインデックス 10 にあります

時間計算量: O(√n)

補助スペース: O(1)
######知らせ:######

この検索は、ソートされた配列に対してのみ機能します。

スキップするチャンクの最適なサイズは O(√n) です。これにより、ジャンプ検索の時間計算量は O(√n) になります。 スキップ検索の時間計算量は、線形検索 ((O(n))) と二分検索 (O(Log n)) の間です。 バイナリ検索はジャンプ検索より優れていますが、ジャンプ検索には 1 回だけトラバースできるという利点があります (バイナリ検索では、検索対象の要素が最小要素または最小要素未満であることを考慮すると、最大 0 (Log n) 回のジャンプが必要になる場合があります)。したがって、ジャンプバックにコストがかかるシステムでは、ジャンプ検索を使用します。

以上がアルゴリズム - 検索をスキップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はLinux就该这么学で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
LinuxとWindowsのメモリ管理はどのように異なりますか?LinuxとWindowsのメモリ管理はどのように異なりますか?May 13, 2025 am 12:04 AM

LinuxandWindowsManageMemoryDifferelyDuetotheirdesignphilosophies.linuxusosovercommitteforbetterbutrisksout-of-memoryerrors、whindowsemploysdemand-compression forStability-assability.thedededifferencedevermenta

LinuxセキュリティのためにFirewalldとUFWを管理する方法LinuxセキュリティのためにFirewalldとUFWを管理する方法May 12, 2025 am 10:56 AM

Linux Systemsは、許可されていないネットワークアクセスに対して保護するためにファイアウォールに依存しています。 これらのソフトウェアの障壁は、ネットワークトラフィックを制御し、事前定義されたルールに基づいてデータパケットを許可またはブロックします。 主にネットワークレイヤーで動作し、管理します

Linuxシステムがデスクトップまたはラップトップであるかどうかを確認する方法Linuxシステムがデスクトップまたはラップトップであるかどうかを確認する方法May 12, 2025 am 10:48 AM

Linuxシステムがデスクトップまたはラップトップであるかどうかを判断することは、システムの最適化に不可欠です。このガイドは、システムタイプを識別するための簡単なコマンドの概要を説明します。 hostnamectlコマンド:このコマンドは、システムのシャーシを確認するための簡潔な方法を提供します

LinuxでTCP/IP接続を増やす方法LinuxでTCP/IP接続を増やす方法May 12, 2025 am 10:23 AM

LinuxサーバーのTCP/IP接続の数を調整するためのガイド Linuxシステムは、サーバーおよびネットワークアプリケーションでよく使用されます。管理者は、多くの場合、TCP/IP接続の数が上限に達し、ユーザー接続エラーが発生するという問題に遭遇します。この記事では、LinuxシステムのTCP/IP接続の最大数を改善する方法を紹介します。 TCP/IP接続番号の理解 TCP/IP(トランスミッションコントロールプロトコル/インターネットプロトコル)は、インターネットの基本的な通信プロトコルです。各TCP接続にはシステムリソースが必要です。アクティブな接続が多すぎると、システムは新しい接続を拒否したり、減速したりする場合があります。 許可された接続の最大数を増やすことで、サーバーのパフォーマンスを改善し、より並行したユーザーを処理できます。 Linux接続制限の現在の数を確認してください 設定を変更します

Linux端子のSVGをPNGに変換する方法Linux端子のSVGをPNGに変換する方法May 12, 2025 am 10:21 AM

SVG(Scalable Vector Graphics)ファイルは、質の損失のない転換可能性のため、ロゴやイラストに最適です。 ただし、PNG(ポータブルネットワークグラフィックス)形式は、多くの場合、Webサイトやアプリケーションとの互換性を高めます。このガイドd

LiveCodeを使用して独自のAndroidおよびiOSアプリを作成する方法LiveCodeを使用して独自のAndroidおよびiOSアプリを作成する方法May 12, 2025 am 10:10 AM

LiveCode:クロスプラットフォーム開発革命 1993年にデビューするプログラミング言語であるLiveCodeは、すべての人のアプリ開発を簡素化します。 その高レベルの英語のような構文と動的タイピングにより、堅牢なアプリケーションを簡単に作成できます

Linux端子からUSBデバイスをリセットする方法Linux端子からUSBデバイスをリセットする方法May 12, 2025 am 10:07 AM

このガイドは、Linuxコマンドラインを介して誤動作するUSB​​デバイスをリセットするための段階的なプロセスを提供します。 これらのコマンドを使用して、無反応または切断されたUSBドライブのトラブルシューティングが簡素化されます。 ステップ1:USBデバイスの識別 まず、i

Linuxに一時的な静的IPアドレスを設定する方法Linuxに一時的な静的IPアドレスを設定する方法May 12, 2025 am 10:06 AM

Linuxに一時的に静的IPアドレスを設定することは、ネットワークのトラブルシューティングまたは特定のセッション構成に非常に貴重です。 このガイドでは、コマンドラインツールを使用してこれを実現する方法を詳しく説明します。

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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

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 プラットフォームで実行できます。