Data-structures-algorithms-data-structure-overview
提供:Dev Guides
データ構造とアルゴリズム-概要
データ構造は、効率的に使用するためにデータを体系化する体系的な方法です。 次の用語は、データ構造の基本用語です。
- インターフェース-各データ構造にはインターフェースがあります。 インターフェイスは、データ構造がサポートする一連の操作を表します。 インターフェースは、サポートされる操作のリスト、それらが受け入れることができるパラメーターのタイプ、およびこれらの操作のタイプを返すだけです。
- 実装-実装は、データ構造の内部表現を提供します。 実装では、データ構造の操作で使用されるアルゴリズムの定義も提供されます。
データ構造の特性
- 修正-データ構造の実装は、そのインターフェイスを正しく実装する必要があります。
- 時間の複雑さ-実行時間またはデータ構造の操作の実行時間はできるだけ短くする必要があります。
- スペースの複雑さ-データ構造操作のメモリ使用量はできるだけ少なくする必要があります。
データ構造の必要性
アプリケーションが複雑になり、データが豊富になるにつれて、アプリケーションが現在直面している3つの一般的な問題があります。
- データ検索-店舗の100万(10 ^ 6 ^)アイテムの在庫を考えます。 アプリケーションがアイテムを検索する場合、検索速度が低下するたびに100万(10 ^ 6 ^)アイテムのアイテムを検索する必要があります。 データが大きくなると、検索が遅くなります。
- プロセッサの速度-プロセッサの速度は非常に高速ですが、データが10億レコードに達すると制限されます。
- 複数のリクエスト-数千のユーザーがWebサーバーで同時にデータを検索できるため、高速サーバーでもデータの検索中に障害が発生します。
上記の問題を解決するために、データ構造が助けになります。 すべてのアイテムを検索する必要がないようにデータをデータ構造に編成でき、必要なデータをほぼ瞬時に検索できます。
実行時間のケース
通常、さまざまなデータ構造の実行時間を相対的に比較するために使用される3つのケースがあります。
- 最悪のケース-これは、特定のデータ構造操作にかかる時間が最大になるシナリオです。 操作の最悪の場合の時間がƒ(n)である場合、この操作はƒ(n)時間以上かかりません。ここで、ƒ(n)はnの関数を表します。
- 平均ケース-これは、データ構造の操作の平均実行時間を示すシナリオです。 操作の実行にƒ(n)時間かかる場合、m個の操作にはmƒ(n)時間かかります。
- ベストケース-これは、データ構造の操作の実行時間を最短にするシナリオです。 操作の実行にƒ(n)時間かかる場合、実際の操作には、ƒ(n)として最大になる乱数として時間がかかる場合があります。
基本用語
- データ-データは値または値のセットです。
- データ項目-データ項目は単一の値の単位を指します。
- グループ項目-サブ項目に分割されるデータ項目は、グループ項目と呼ばれます。
- 基本項目-分割できないデータ項目は基本項目と呼ばれます。
- 属性とエンティティ-エンティティとは、特定の属性またはプロパティを含むエンティティであり、値を割り当てることができます。
- エンティティセット-同様の属性のエンティティがエンティティセットを形成します。
- フィールド-フィールドは、エンティティの属性を表す情報の単一の基本単位です。
- レコード-レコードは、特定のエンティティのフィールド値のコレクションです。
- ファイル-ファイルは、特定のエンティティセット内のエンティティのレコードのコレクションです。