データの構造
- データを保存し、整理するために、コンピュータの世界で
、次の4つの異なるデータストレージを導入します - アレイ
ストレージ:連続したメモリに蓄積された順次
アクセス:のみ位置インデックスを提供するために必要な
注意を:あなただけのデータの同じ種類保存することができます
機能を:読み取り、削除や困難を挿入しやすいです。 - リスト
記憶離散節点へのポインタを含む空間とデータ・ノード。
アクセス:最初のスタート見てから、必要なデータを見つけるために知っている
特性を:難易度のアドレッシング、除去が容易とインサート - スタック
の原則を:最終 - キューの
原則:先入れ先出し
時間計算量:
O(N)で表されるが、定性的に、の関数であるアルゴリズムの実行時間を説明
する際の複雑さを知ることができる(n)の実行時間Tから
、定数Cの存在を、このような場合、Nは> = CときT(N)<(F = N)、 Oが(F = T(N)として表される (n))を
サイズnの増加の入力、成長速度F(N)とすることができるアルゴリズムの実行に必要な時間として表す
Tを(N)=> O(N)
T(N)=定数、O(N)= 1、
選択高次項
比如
T(n) = n^3 + n^2 + 29,此时时间复杂度为 O(n^3)。
乗算最上位定数無視
(N)Tから得られたアルゴリズムおよび数学的演算を分析することによっては
、サイクルタイム1.ループ本体の複雑さはO(N)であると仮定し、サイクル数は、サイクルの時間複雑mで度はO(NであるM)
サイクル2の複数のループ時間複雑度はO(n)は、サイクル毎、B、C ...、O(N)= O(N-あるB C .. 。)。分析で分析したときに外方から
アルゴリズム3.配列、最大複雑さに等しい合計時間の複雑実行
4.条件文、最大パスの時間複雑さの複雑さに等しい合計時間の複雑
クイックソートを時間複雑
1は、好ましくは、O(nlogn)されている
2最悪はO(N 2)であり、
空間的複雑:
アルゴリズムのメモリが必要説明します
再帰的アルゴリズム:プロシージャまたは関数呼び出しとノートは通常、その直接または間接の呼び出し自体一つの方法であり、大規模で複雑な問題の解決に、元の小さな問題と同様の問題に。再帰は、プログラムのほんの数は大幅にコードサイズを低減、繰り返し説明問題解決の必要な処理を計算することができる必要があります。限られたステートメントを使用してオブジェクトを定義する機能の再帰無限集合。
一般的に、再帰的な必要性は、境界条件、境界条件が満たされた境界条件が満たされていない進み期間の再帰と再帰的なリターン、再帰的な前進、再帰的なリターンを持っています。
条件に再帰的な必要性を構成します:
1.サブ問題と元の問題は同じこと、そしてより簡単です。
2.ない無制限の通話、非再帰的な処理のための状況を、エクスポート簡素化する必要があります。
フィボナッチ数は、典型的な再帰的な場合です。
再帰的アルゴリズムがに関してサイクルのためのいくつかのパフォーマンスの問題があります。再帰特に深い場合は、スタックオーバーフローを引き起こす可能性があります。
再帰アルゴリズムの設計段階の:
1.再帰式を決定します
2.境界(終了)条件を決定します
典型的な例:
高速アルゴリズムをソートする:その値が値を比較することによって提唱された第1の乱数列の値は、値の後に要素よりも大きな要素値よりも小さい取り、再度前半部に列の数および順序のうち、上述した動作の後半。
クイックソートアルゴリズムの平均複雑度は、O(nlogn)であり、最悪の場合の複雑さはO(N ^ 2)であります
挿入の比較、バブル、マージ、そのような異なる利点および欠点として高速ソートアルゴリズム、。追加のスペースの消費量、平均時間の複雑さと時間の複雑さの最悪の側面から、そしてその長所と短所を比較します。