O(1) 時間で最小値または最大値を取得するキュー データ構造を設計する

PHPz
リリース: 2023-09-10 14:33:02
転載
1085 人が閲覧しました

O(1) 時間で最小値または最大値を取得するキュー データ構造を設計する

C には、スタックとキューのプロパティを処理する両端キュー ヘッダー ファイルがあります。データ構造では、時間計算量 O(1) の問題を解くには一定の時間が必要です。このプログラムで両端キューを使用すると、スタックとキューの両方を使用する利点が得られます。

この記事では、キューのデータ構造を解決して、数値の最小値または最大値を O(1) 時間で取得します。

###文法### リーリー

パラメータ

  • deque

    - これは deque として知られており、キューに相当する項目または数値のセットを順序付けします。

  • data_type

    - 使用されるデータ型 (int、float など)。

  • name_of_queue

    - キューに指定された任意の名前 (ab、cd など)。

    リーリー
  • front() は C STL の定義済み関数で、キューの最初のインデックス位置を直接参照します。
リーリー

back() は C STL の定義済み関数で、キューの最後のインデックス位置を直接参照します。

リーリー

push_back() も、後ろから要素を挿入するための事前定義された関数です。

###アルゴリズム###

ヘッダー ファイル

'iostream'
  • 'deque'

    を使用してプログラムを開始します。 数値の最大値または最小値を処理するために両端キューに挿入します。

  • "deque dq"
      - これを使用すると、スタックとキューのプロパティを有効にできます
    • for ループから開始して、
    10
  • から
  • 15 の範囲に要素を挿入します。

    次に、'push_back[i ]' というメソッドを使用します。このメソッドは、'i' をパラメーターとして受け取り、for ループを使用して配列要素をプッシュします。 次に、事前定義関数

    front()
  • back()

    を使用して 2 つの変数を作成し、数値の最小値と最大値を見つけます。 Front() は最小の数値を表す最初のインデックスを検索し、back() は最大の数値を表す最後のインデックスを検索します。 ここで、インデックス番号の長さを反復処理するために for ループを初期化し、その長さを使用して最小要素と最大要素の比較を

    'dq[i]' として分類します。
  • したがって、これにより最小値と最大値が見つかります。
  • 最後に、

    'min_element'
  • 変数と
  • 'max_element'

    変数を使用して、最小長と最大長の出力を出力します。 ###例### このプログラムでは、キューのデータ構造を解いて最小値と最大値を O(1) 時間で取得します。

    リーリー ###出力### リーリー ###結論は### 李> 最小または最大の要素を見つけるために、キュー データ構造の概念を調査しました。フロント() と バック() を使用して要素の最小値と最大値を見つける方法を確認し、インデックス付き要素の末尾にプッシュバックを追加する方法も確認しました。デキューを使用すると、O(1) の時間計算量で問題を処理できます。

以上がO(1) 時間で最小値または最大値を取得するキュー データ構造を設計するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート