データの構造
データ構造は、操作対象計画問題非数値計算における研究、および対象関連の問題とその動作との関係です。
なぜデータ構造を勉強?
データ構造を学ぶことは論理的思考や抽象的思考を学ぶための機能です。=アルゴリズム+データ構造をプログラムし、基礎となるソースの開発は、データ構造と不可分です。研究が必要なデータ構造である以上に深い学びたいと思っています。
データ構造は何ですか?
データ構造は、各セットの間の特定の関係の一個の以上のデータ要素の存在です。
データ構造の論理構造と物理構造
論理構造、データ構造、論理構造は、以下の4つに分割され、データ要素間の関係を指します。
- コンフィギュレーションのセット:同じ集合に属するセットに加えて、データ構造、それらの間には、他の関係
- 線状構造:データ要素間の線形構造は、1対1の関係であります
- ツリー:ツリー構造内の要素間でのデータの多くの階層関係の存在
- グラフ構造:グラフィカルなデータ要素の構造は、多くの多くのです - 関係
コンピュータ内の論理構造の形で記憶手段のデータ構造の物理的構造
- 順次記憶構造と、データ間の関係を保証するために、典型的には、アレイを使用して実装、アレイは連続空間自体は、データを格納するために連続した領域のセットを開き
- ストレージ構造は:、データの格納にスペースのランダムなセットを開き、通常のノードを達成するために、データを保存するために、ノードの位置だけでなく、データ間の関係を確認するために次のノードを格納し
私たちは、さまざまなシナリオを選択する柔軟性に合わせて、最も適切なデータ構造をしたいです
アルゴリズム
問題解決、コンピュータ内の命令の順序付けられたシーケンスを解決するために、特定のアルゴリズムを記述し、各ステップは、1つまたは複数の指示操作を表し、それは問題を解決することを目的とします。
アルゴリズムの品質を評価する方法?
その後、統計的手法:、優れたプログラムやデータを設計するタイマープログラムのための時間を実行しているコンピュータを使用することにより、アルゴリズムの効率性のレベルを決定するために、異なるアルゴリズムを比較します
分析前の推定方法は、コンピュータプログラミングの前に、推定アルゴリズムの統計的方法によれば、コンピュータ上で動作するプログラムは、消費される時間は、以下の要因に依存します。
- アルゴリズムで使用される戦略と方法
- コンパイラによって生成されたコードの品質
- 問題の規模を入力します。
- 実行するマシンの命令実行速度
時間複雑
時間複雑として知られている時間の複雑さ、アルゴリズムの時間計算量は、定性的なアルゴリズムの実行中の時間を記述する関数です。
アルゴリズムの間、実行T(N)の総数のステートメントはの関数であるN問題のサイズであり、そして次にNの変化とT(n)を分析し、大きさの順序を決定する、時間であるアルゴリズムの時間計算量T(n)が、 T(N)= O(F(N)):メトリックは、で表されます。Nは、アルゴリズムの実行時間は、アルゴリズムの進行時間計算と呼ばれる、同じ成長率とF(n)の成長のサイズと共に増加問題を表し、時間複雑度と呼びます。ここで、f(n)は、問題のサイズnの関数です。T(n)が特定の数であり、O(n)は成長を確認するために、指定された数を行いません。
いくつかの一般的な時間複雑
-
一定の順序O(1)無循環
-
オーダーO(LOGN)の循環は、加速度が加速度を減少させ
-
線形順序O(N)サイクル場合
-
バイナリツリーによってにおけるnlognオーダーO(nlog n)と
-
乗オーダーはO(n ^ 2)
-
立方オーダーはO(n ^ 3)
-
指数オーダーO(2 ^ N)
上から下までの時間複雑さが増します
私たちは、時間計算量は最悪のケースで考えます