データ構造学習ポイントの概要

概要概要

この章では、データ構造とアルゴリズムの基本概念、および後続の章を学習するための基礎となるアルゴリズム分析の基本的な方法を紹介します。この章のナレッジポイントの構成構造を次の図に示します。
ここに写真の説明を挿入

キーポイント/難しさ/ポイント

この章の焦点は次のとおりです

  1. データ構造の基本概念。
  2. データの論理構造、ストレージ構造、および2つの関係。
  3. アルゴリズムと特性;
  4. 大きな0マークの表現。

この章の難しさは次のとおりです

  1. 抽象データタイプの定義と使用。
  2. アルゴリズム時間の複雑さの分析。

この章では、2つの主要な行を把握します。1つの主要な行は、データ構造と関連する概念の研究対象を含むデータ構造であり、もう1つの主要な行は、アルゴリズム関連の概念、記述方法、および時間複雑性分析方法を含むアルゴリズムです。
データ構造の部分では、問題解決プロセスから始めて、「データ構造+アルゴリズム=プログラム」を理解し、データ構造とプログラム設計の関係に注意を払います。データ構造部分のコアコンセプトはデータ要素であり、特定の例を通じてデータ要素間の関係に注意を払います。データ構造部分の重要な概念はデータ構造です。論理構造とストレージ構造の2つの側面を把握し、2つの側面を把握する必要があります。間の関係。
アルゴリズムの部分では、アルゴリズムの概念と特性が基本的なポイントであり、アプリケーションアルゴリズムの特性は、今後の教育で注意を払う必要があります。概念を単独で学習するのではなく、概念の拡張と適用に注意してください。アルゴリズムの時間パフォーマンスの分析には、注意を払ってください。成長率、つまり基本ステートメントの実行回数の大きさに焦点を当て、基本ステートメント、実行回数、大きさの3つの重要なポイントを強調します。アルゴリズム時間パフォーマンス分析の結果は、大きなO表記で表される大きさのオーダーです。
最後に、データ構造とアルゴリズム分析はすべて、大量のデータ、つまり、大量のデータの編成と大量のデータ処理の効率を目的としていることを強調します。コンピュータのコンピューティング速度の向上に伴い、大量のデータを処理できる高速プログラムに対する需要がますます高まっています。

知識のポイント

  1. プログラム設計の一般的なプロセスは「質問→アイデア→アルゴリズム→プログラム」であり、その本質はデータ表現とデータ処理です​​。データ表現の主なタスクは、問題からデータモデルを抽象化し、モデルをコンピューターの外部表現からコンピューターの内部表現に変換することです。データ処理の主なタスクは、問題解決方法の記述を抽象化すること、つまりアルゴリズムを設計することです。
  2. データ構造は、非数値的な問題におけるコンピューターの操作オブジェクトと、それらの関係および操作を研究する主題です。
  3. データ要素はデータの基本単位であり、通常、コンピュータプログラムで全体として考慮および処理されます。データ要素は、データ構造の説明に関係する最小のデータユニットであり、データ項目は通常考慮されません。
  4. データ構造とは、相互に特定の関係を持つデータ要素の集合を指します。さまざまな観点から、データ構造は論理構造とストレージ構造に分けられます。データの論理構造とは、データ要素間の全体的な論理関係を指し、データのストレージ構造は、コンピューターでのデータとその論理構造の表現です。
  5. データ要素間のさまざまな論理関係に従って、データ構造は、コレクション、線形構造、ツリー構造、およびグラフ構造の4つのカテゴリに分類されます。
  6. データ構造には通常、シーケンシャルストレージ構造とリンクストレージ構造の2つのストレージ方法があります。
  7. 抽象データタイプは、データモデル(つまり、データ構造)および構造で定義された一連の操作の総称です。
  8. アルゴリズムは、特定の問題、つまり有限の命令シーケンスを解決するためのステップの説明です。アルゴリズムは、入力、出力、有限性、確実性、および実現可能性という5つの重要な特性を満たす必要があります。
  9. アルゴリズムの5つの主要な特性を満たすことに加えて、「優れた」アルゴリズムには、正確性、堅牢性、単純さ、抽象化分類、高効率などの特性もあります。
  10. アルゴリズムを記述するために一般的に使用される方法には、自然言語、フローチャート、プログラミング言語、疑似コードなどがあります。中でも、疑似コードは、「アルゴリズム言語」または「第1言語」と呼ばれるアルゴリズムを記述するためのより適切な方法です。
  11. アルゴリズムの効率を測定する方法は2つあります。統計後の方法と分析前および推定の方法です。
  12. コンピュータのソフトウェアとハ​​ードウェアに関連する要因は別として、アルゴリズムの時間コストに影響を与える最も重要な要因は問題の規模です。問題のスケールとは、入力の量を指し、一般的には、問題の説明から取得できます。
  13. アルゴリズムの実行時間を客観的に反映するために、アルゴリズムの基本文の実行回数を使用して、アルゴリズムのワークロードを測定できます。基本ステートメントは、実行時間がアルゴリズム全体の実行時間に比例するステートメントです。
  14. 時間の複雑さは通常大きなO表記で表されますが、この方法は実際には推定方法です。
  15. アルゴリズムの時間の複雑さを解決する簡単な方法は、すべての文の中で実行時間が最も長い文を基本文として見つけ、基本文の実行時間の大きさの順序を計算して、それを大きなO表記にすることです。

運動

問題の抽象化とプログラムの設計
人間とコンピューターの間で効果的に通信する方法は(A)です。
A.プログラムB.言語C.ステートメントD.アルゴリズム
プログラム設計の鍵は(C)です。
A.データ構造とアルゴリズムB.データ表現とデータ処理CAとBは
すべてこのコースで説明するすべての問題のデータ編成と処理に関するものです。(×)
プログラム設計プロセスで使用される考え方は(D)です。
A.論理的思考B.抽象的な思考C.イメージ思考D.計算的思考

データ構造の基本概念
論理構造は、データ要素自体の内容や形式とは関係ありません。(√)
特定の論理構造に基づく基本的な操作の実現は独特です。(×)
理論的には、ストレージ構造はプログラミング言語とは何の関係もありません。(×)
データ構造を議論する際の焦点は(B)です。
A.データB.データ要素C.データオブジェクトD.データ項目
コンパイラによって処理されるデータは(C)です。
A.言語B.ステートメントC.ソースプログラムD.文字列
さまざまな観点から、データ構造は論理構造とストレージ構造に分けられ、その観点は(A)を参照します。
A.メモリB.外部ストレージC.ファイルD.問題

アルゴリズムの基本概念
フローチャートは、アルゴリズムを記述するために最も一般的に使用される方法です。(×)
プログラミング言語と同様に、疑似コードにも国際標準があります。(×)
アルゴリズムの決定性は、同じ入力に対して同じ出力が得られることを要求します。(√)
アルゴリズムは正確さを満たさなければなりません、さもなければ存在の価値はありません。(×)
(D)は「アルゴリズム言語」と呼ばれます。
A.自然言語B.フローチャートC.プログラミング言語D.疑似コード

アルゴリズム分析アルゴリズム
の時間の複雑さは、アルゴリズムの基本的な文の実行回数によって決まります。(×)
アルゴリズムの時間の複雑さは、アルゴリズムによって消費されるリソースの正確な計算です。(×)
アルゴリズムのスペースの複雑さは、入力/出力データが占めるスペースと、アルゴリズムを実行するための補助スペースを指します。(×)In
-situアルゴリズムまたはin-situアルゴリズムは、アルゴリズムが実行中に補助スペースを必要としないことを意味します。(×)
次のプログラムセグメントでは、問題のスケールは(H)、基本文は(C)、時間の複雑さは(G)です。
A.(1)
B.(2)
C.(3)
D.(4)
EO(n 2 n ^ 2n2
FO(M 2 M ^ 2M2
GO(m×n)
HO(m×n / 2)

(1)for(i=0;i<m;i++)
{
    
    
(2)	for(j=0;j<n/2;j++)
(3)		cout<<data[i][j]; 
(4)	cout<<endl;
}

参照:「データ構造(概念からC ++実装まで)」Tsinghua University Press、Wang Hongmei

おすすめ

転載: blog.csdn.net/oldmao_2001/article/details/109045357
おすすめ