データ構造とアルゴリズム入門


この記事ではPythonとプログラミングの最も基本的な概念を探求します.
データ構造とアルゴリズムの良い把握とそれらを実装する方法は、コードを使用して課題を解決し、実世界の問題にロバストなソリューションを作成するのを支援します.
データ構造とアルゴリズムは少しの頭痛でありえます、しかし、この記事の終わりに、あなたはその頭痛のために痛み安心を持ちます.

データ構造
データ構造は、データを整理、処理、取得、格納することができる特別な形式です.
特定用途には様々なタイプがある.
データ構造は、ユーザーが簡単に使用するためのデータを整理支援することが重要です.

組み込み
私は前の記事で詳細にこのタイプをカバーしました
  • リスト
    リストはデータのコレクションです.これは、重複した値を持つことができます.
  • タプル
    タプルは順序のないデータのコレクションです.これは、重複した値を持つことができます.
  • セット
    セットは、順序なしで、変更不可能で、インデックスなしであるデータのコレクションです.値を複製することはできません.
  • 辞書
    辞書は、データのコレクションは、修飾され、変更可能なインデックスです.値を複製することはできません.
  • ユーザ定義
    ユーザー定義のデータ構造は、ユーザーがデータ構造の機能を制御し、それらを作成することができます.
  • スタック
    スタックは、FILO(最後の最初の)形式でデータを格納する線形データ構造です.新しい要素は、一端で追加され、その端だけで削除されます.
    アイテムの削除はPOPと呼ばれ、項目を追加するとpushと呼ばれます.
    イラスト

  • リストを使用した実装
    stack = []
    stack.append("Andisi")
    stack.append("Ambuku")
    stack.append(2022)
    print(f"Initial stack : {stack}")
    Initial stack : ['Andisi', 'Ambuku', 2022]
    stack.pop()
    2022
    stack.pop()
    'Ambuku'
    stack.pop()
    'Andisi'
    print(f"Stack after elements are removed : {stack}")
    Stack after elements are removed : [] 
    
  • キュー
    キューは、FIFO(first in first out)形式で項目を格納する線形データ構造です.追加される最後の項目は削除される最初です.
  • イラスト

    queue = []
    queue.append("Andisi")
    queue.append("Ambuku")
    queue.append(2022)
    print(f"Initial Queue is {queue}")
    Initial Queue is ['Andisi', 'Ambuku', 2022]
    queue.pop(0)
    'Andisi'
    queue.pop(0)
    'Ambuku'
    queue.pop(0)
    2022
    print(f"Queue after removing element: {queue}")
    Queue after removing element: []
    
    
    
  • リスト
    リンクリストは、要素が隣接した記憶場所に格納されない線形データ構造である.要素はポインタを使ってリンクされます.
    イラスト
  • の木
    木は、この
  • のように見える階層的なデータ構造です
    イラスト

    上部をルートと呼び、その下の連続する部分をノードと呼ぶ.後継者や子のない名詞を葉節と呼ぶ
  • グラフ
    グラフはエッジとノード(頂点)を持つ非線形データ構造である.エッジは2つのノードを接続します.
  • イラスト

    ハッシュマップ
    ハッシュマップはインデックス付きデータ構造です.これは、ハッシュ関数()を使用して、対応するキーを持つ配列をスロットの配列に取得します.キーは一意で変更できません.イラスト
  • ヒープ
    ヒープは、優先順位キューを表示するために使用されるデータ構造体です.このデータ構造体は、要素がランダムにポップされたときに最小の要素を与えます.アイテムがポップされるか、ヒープの構造が押されるとき、維持されます.
  • イラスト


    アルゴリズム
    アルゴリズムは、問題を解決するために続く規則のセットです.入力が与えられた場合、アルゴリズムが実行され、出力からの結果が出力されます.
    ソートアルゴリズム
    ソートアルゴリズムは、リストまたは配列を入力として受け取り、項目を特定の順序で並べる一連の命令です.
    ソートアルゴリズムは、特定の順序でデータを整理するのに便利です.彼らは組織化されたデータをより整理しやすく使いやすくする.
    ソートアルゴリズムの例としては:
  • バブルソート
  • 挿入ソート
  • マージソート
  • シェルソート
  • 選択ソート
  • 探索アルゴリズム
    探索アルゴリズムはデータ構造の項目を検索するための命令セットである.それらに分類されます.
  • シーケンシャルサーチ
    この種の探索アルゴリズムはリストまたは配列で使用され、各要素が順番に通過し、各要素が解決されるまでチェックされます.
    一例は線形探索
  • である
    Geeks for Geeksからのイラスト
  • インターバル検索
    この種の検索アルゴリズムは、ソートされたデータ構造(例えばソートされたアレー)に使用される.探索空間を2つに分割し、解決が見つかるまでプロセスを停止し続ける.
    例はバイナリ検索です.
  • Geeks for Geeksからのイラスト

    グラフアルゴリズム
    グラフアルゴリズムは、グラフのノードを通過する(縦断)命令の集合である.これは、ノードまたは特定のノード間の特定のパスを見つけるために使用されます.
    グラフアルゴリズムは、多くの使用を1つの現実世界の使用タクシータクシーアプリケーションです.アルゴリズムは、マップの機能には、指定されたルートを使用して車両の最短のパスまたは最短経路を見つけるために実装されます.
  • 深さの最初の横断
    深さ優先探索は、現在のノードをチェックして、それからその後継者のうちの1つに続いて、同じプロセスを繰り返すことによって、グラフを横断する.
    電流が後継者を持たない場合、アルゴリズムはその前任者に戻り、それから後継者をチェックします、そして、解決が見つけられるならば、検索は止まります.
  • Freecodecampからのイラスト
  • 幅の最初の横断
    幅の最初の探索は、現在のノードを最初にチェックして、その後、連続したレベルにその後継者を含むことによって、それを拡大することによって、グラフを横断します.
    これは、すべてのノードは、現在のレベルでは、解決策は、検索が終了するまでは、次のレベルに続けて行く.
    Simplilearnからのイラスト
    breadth-first-algorithm

  • アルゴリズムの性質
    有限要素
    アルゴリズムは、入力された任意の入力の定義された数の後に終了する必要があります.
  • 出力指定
    アルゴリズムはユーザによって与えられた入力の結果として出力を与えなければなりません.出力はプロセスの解決です.
  • 効果的な

  • アルゴリズムのステップは、正確に、そして、有限の時間の範囲内で実行されなければならない.
  • 入力される
  • 入力
    アルゴリズムは、問題への解決を生成するのに必要なプロセスを実行するために入力値を与えなければなりません.
  • 明確な

  • アルゴリズムは、指定された問題に対する解決を生成する際にそれに続く指定されたステップを持たなければなりません.
  • 次回までは、コードを使用することがあります!