Java の時間計算量と空間計算量の分析例
1. アルゴリズム効率
アルゴリズム効率分析は 2 つのタイプに分けられます: 1 つ目は時間効率、2 つ目はスペース効率です。時間効率は時間計算量と呼ばれ、空間効率は空間計算量と呼ばれます。時間計算量は主にアルゴリズムの実行速度を測定し、空間計算量は主にアルゴリズムに必要な追加スペースを測定します。コンピューター開発の初期には、コンピューターの記憶容量は非常に小さかったです。そのため、私たちは空間の複雑さを非常に重視しています。しかし、コンピュータ産業の急速な発展により、コンピュータの記憶容量は非常に高いレベルに達しました。したがって、アルゴリズムの空間の複雑さに特別な注意を払う必要はなくなりました。
2. 時間計算量
1. 時間計算量の概念
アルゴリズムにかかる時間は、そのステートメントの実行回数に比例します。実行回数はアルゴリズムの時間計算量です。つまり、コードを取得してコードの時間計算量を確認すると、主に、コード内で最も多く実行されたステートメントを含むコードが何回実行されたかが分かります。
2. Big の漸近表現
画像分析を見てください:
N の値がどんどん大きくなると、 2N と 10 の合計値は無視できます。
実際、時間計算量を計算するとき、正確な実行数を計算する必要はなく、おおよその実行数のみを計算する必要があるため、ここでは Big O の漸近表現を使用します。
Big O 記法: 関数の漸近的な動作を記述するために使用される数学記号です。
1. 実行時のすべての加法定数を定数 1 に置き換えます。
2. 修正された実行時間関数では、最上位の項のみが保持されます。
3. 最上位の項が存在し、それが 1 でない場合は、この項に乗じた定数を削除します。結果はビッグオーオーダー。
上記のことから、Big O の漸近表現は結果にほとんど影響を与えない項目を削除し、実行回数を簡潔かつ明確に表現していることがわかります。
さらに、一部のアルゴリズムの時間計算量には最良の場合、平均的な場合、および最悪の場合があります。
最悪の場合: 任意の入力サイズに対する最大実行数 (上限)
平均的なケース: 任意の入力サイズに対する予想される実行数
最良のケース: 任意の入力サイズに対する最小実行数 (下限)
例: データ x## を検索します。長さ N の配列内
#最良のケース: 1 回検出されました 最悪のケース: N 回検出されました平均的なケース: N/2 回検出されました 実際には実践では、一般的な状況がアルゴリズムの最悪の動作状況であることに注意してください。そのため、配列内のデータの検索の時間計算量は O(N)計算時間の計算量 例 1:
#基本演算は良くて N 回、悪くても (N*(N-1))/2 回実行されます。ビッグ O 次法の時間計算量は、一般に最悪の時間計算量は O( N^2
例 5: 二分探索の時間計算量
基本的な演算はよくて1回、悪くてもO(logN)回、時間 計算量はO(logN) ps:logNとは、アルゴリズム解析において底が2で対数がNという意味です。 lgN と書きます (logN の計算方法を折り紙探索で説明することをお勧めします) (二分探索のため、不適切な値の半分が削除されるたびに、1 つの半分の後に残った値は n/2 になります。残りの値は 2 つの半分の後の値です: n/2/2 = n/4)
例 6: 階乗再帰の時間計算量を計算します
再帰の時間計算量 = の数recursions * 各再帰が実行される回数
計算と分析により、基本操作が N 回再帰され、時間が複雑であることがわかります。その次数は次のとおりです。 O(N).
例 7: フィボナッチ再帰の時間計算量の計算
計算と分析により、基本演算は 2^N 回再帰的であり、時間計算量は O(2^N) であることがわかります。
ルール:
##N 個の空間が動的に開かれ、空間複雑度は O(N)
例 3 : 階乗再帰の空間計算量を計算します。
再帰は N 回呼び出され、N 個のスタック フレームが開かれ、各スタック フレームは一定量のスペースを使用します。空間の複雑さは O(N)
以上がJava の時間計算量と空間計算量の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。
