blog

アルゴリズムとデータ構造 システムクラス

授業の最初の週では、最も単純なアルゴリズムである線形ルックアップ法を学びます。このような単純なアルゴリズムを学ぶ過程で、ループ不変量、複雑さ解析、アルゴリズムをより一般的にするためのジェネリックスの使...

Jul 23, 2020 · 11 min. read
シェア







なぜこのコースを受講したいのですか?

1:ボボ氏の5年カテキョネットワークアルゴリズム
指導経験集
このカテゴリーでは「他の追随を許さない」存在。


2:基礎から知識体系へ
非知的アルゴリズムの分野では
もう問題はないでしょう


3:フルアニメーション表示
精巧なpptアニメーション
より簡単に
アルゴリズムの流れの理解


4:アルゴリズムは継続的な最適化の対象
さまざまなアルゴリズムをよりリアルに見ることができます。
実際の結果に最適化


5: よく使われるアルゴリズムとデータ構造の組み合わせ
従量制」の構築。
「オンデマンド」図書館


ステージ1:アルゴリズムとデータ構造の基礎
調べる
第1週 線形探索法
授業の最初の週では、最も単純なアルゴリズムである線形ルックアップを学びます。このような単純なアルゴリズムを学ぶ過程で、ループの不変量、複雑さの分析、アルゴリズムをより一般的にするためのジェネリックスの使い方、簡単な性能テストなど、多くの概念にも触れることになります。
カリキュラム
1.アルゴリズムとは
2.アルゴリズムとデータ構造を学ぶ理由
3.線形ルックアップアルゴリズム
4, アルゴリズムをより一般的にするためのジェネリックの使用
5、カスタムクラステストアルゴリズム
6.環状不変量
7.複雑さ分析
8.一般的なアルゴリズムの複雑さの例
第2週 並べ替えの基本
この週では、最も基本的なソートアルゴリズムの2つ、選択ソート法と挿入ソート法に取り組みます。この2つのソートアルゴリズムは単純なものですが、この週では、ループ不変量と複雑さ解析の考え方をこれらのアルゴリズムに適用することで、学習を定着させます。
カリキュラム
1.選別方法
2.その場選別
3.汎用制約の使用
4.Comparableインターフェイスの使用
5.挿入ソート方式
6.挿入ソート方法の最適化
7.ソートアルゴリズムのテストデータ生成
8.ソートアルゴリズムの性能テストと比較
第3週 データ構造の基礎:動的配列、スタック、キュー
今週は、最も基本的なデータ構造である線形データ構造を紹介します。これらのデータ構造は単純に見えるかもしれませんが、これを学ぶことで、静的配列の拡大と縮小、償却複雑度分析、データ構造のインターフェース設計、循環キューなど、多くの新しい概念に触れることになります。
カリキュラム
1.静的配列と動的配列の理解
2、独自のデータ構造をカプセル化する方法
3 の動的配列の拡張および収縮
4.等化の複雑さの分析
5.データ構造のインターフェース設計
6.スタックとスタックアプリケーション
7.待ち行列と待ち行列の応用
8、キューの最適化:円形キュー
9.ダブルエンド・キュー
10.Java言語における設計問題の議論
第4週 動的データ構造の基礎:連鎖テーブル
今週は、最も基本的な動的データ構造である連鎖表を紹介します。連鎖表を学ぶ過程で、プログラミングにおける「参照」の概念をより深く、より深く理解することができ、また、プログラミングでロジックを構築する最も一般的な方法の1つである「再帰」に出会い始めるでしょう。
カリキュラム
1、チェーンテーブルとは
2、より多くの削除変更チェックのチェーンリスト
3.抽象データインターフェース
4、スタックとキューを実装するためにチェーンテーブルを使用します。
5.連鎖するテーブルのパフォーマンス問題
6.連鎖表の自然な再帰構造
7、再帰のチェーンテーブルの深い理解を通じて
ステージ2:どこでも再帰
第5週 サブサンプションと順序法
最初の高度なソートアルゴリズムであるサブサンプションソート法を学びます。より一般的な再帰的アルゴリズムがどのように設計されているかを理解し、トップダウンとボトムアップを理解し、パーティショニングを理解します。サブサンプション法の最適化、O(nlogn)の複雑さの解析的アプローチ、サブサンプションのアイデアの実践的な応用を学びます。
カリキュラム
1, サブサンプション・ソートのアルゴリズム的考え方
2.統合プロセス
3、複雑な再帰的アルゴリズム操作メカニズムの解釈
4.包含ソート法の複雑さ解析
5.サブサンプション・ソーティング法の最適化
6.トップダウンとボトムアップ
7、数字のペアの逆順序を見つけるためにサブサンプションソート法を使用します。
第6週 急速選別法
今週は、2番目の高度なソートアルゴリズムであるクイックソートを学習します。徐々に最適化を行い、4つのバージョンのクイックソートアルゴリズムを完成させ、異なるデータに対するアルゴリズムの振る舞いの違いを見ていきます。また、ランダムなアルゴリズムに直面したときの複雑さ解析の違いについても簡単に紹介します。
カリキュラム
1、高速ソートアルゴリズムの基本的な考え方
2.ランダム化高速ソートアルゴリズム
3.双方向高速小隊
4.三つ巴の高速小隊
5.異なる高速ソートアルゴリズムの性能比較
6.ファストローの複雑さの分析
7.高速プラトゥーニングのアイデアの実用化
第7週 二項対立の発見
カリキュラム
1.二分探索法の基本的な考え方
2.バイナリサーチの再帰的実装
3.バイナリサーチの非再帰的実装
4.プログラミングにおける境界問題の深い理解
5.浮動小数点データへのバイナリサーチの適用
6.バイナリサーチによる境界探索問題の解法
7.デッドループの回避
8.二分検索用テンプレート
9. 二項探索法の考え方を用いて現実の問題を解決する方法
第8週 二項探索木
最初の基本的な木構造であるバイナリ探索木を学びます。バイナリ探索木を学習する過程で、再帰を多用し、再帰の理解を深めます。また、データをトラバースする古典的な方法であるDFSとBFSを学び、最も一般的な抽象データ型の2つである集合とマップを紹介します。
カリキュラム
1.ツリー構造とは
2.データ構造における再帰の使用
3.深さ優先探索
4.幅優先探索
5.ハバード削除
6.抽象データ構造:コレクション
7.抽象データ構造:マッピング
8.集合と写像の古典的応用
フェーズ III: 高度なアルゴリズムとデータ構造
第9週 ヒープ、優先キュー、ヒープソート
特殊な木構造であるヒープについて学びます。配列もツリー構造を表現できることがわかります。もう1つの高度なソートアルゴリズムであるヒープソートが紹介されます。最後に、ヒープを使って、非常に広い応用範囲を持つ重要なデータ構造である優先度待ち行列を構成し、待ち行列の理解を広げます!
カリキュラム
1.配列はツリー構造を表すこともできます。
2、ヒープの基本動作
3.ふるい上とふるい下
4.ヒープ化
5.ヒープソート
6.優先キュー
7.優先キューの適用
8.一般化された待ち行列
第10週 コロッサル・ソート、ヒル・ソート、ソート・アルゴリズムの大要説
バブルソートとヒルソートです。ヒルソートは重要なソート法であり、インサーションソートの利点をどのように応用し、さらには新しい効率的なアルゴリズムに変えることができるかを説明します。ソートアルゴリズムに関連する概念の要約も、より体系的に紹介します。
カリキュラム
1、バブルソートの基本的な考え方
2、バブリングソートの最適化
3、ヒルソートの基本的な考え方
4.ヒルソートの最適化
5.インクリメンタルシーケンスとは
6.比較ベースのソートアルゴリズムのまとめ
7.安定した選別
第11週 ラインツリー、トライと平行集合
さまざまな状況で使用される3つのツリー構造、ラインツリー、トライ、パラレルセットについて学びます。異なるデータ構造がいかに異なる問題を解決する能力を持っているかを理解し、異なる問題に対して適切なデータ構造を選択する方法を学びます。
カリキュラム
1、ラインツリーの基本操作
2.インターバルクエリの問題
3、トライツリーの基本操作
4、Trieを使ってパターンマッチング問題を解きます。
5、セットの基本原則をチェック
6.6バージョンの並列チェックセットの継続的最適化
7.並列検査セットの適用
第12週 AVLの木と赤黒い木
AVL木とred-black木の2つの高度なバイナリ探索木構造を学習します。二項探索木の限界を理解し、バランス木の概念に触れます。2-3木とred-black木の等価性を見ることは、その後のBクラス木の学習の基礎にもなります。
カリキュラム
1、バランスの取れた木とは
2.左回転と右回転
3、AVLツリー
4, 2-3 ツリー
5, 2-3 木と赤黒い木の等価性
6.バランスを保つ赤黒木の基本操作
7、達成するために操作を追加する赤黒木
8、バイナリ探索木、AVL木、赤黒木の性能比較
9.単語頻度統計の応用
10, カプセル化された様々なコレクションとマッピング構造をテストするための実データの使用。
第13週 ハッシュ・テーブルとSQRT分解
まず、重要なデータ構造であるハッシュテーブルを学び、ハッシュの概念を理解し、チェーンアドレス法を使って独自のハッシュテーブル構造を設計します。同時に、チャンキングの概念を学び、データ構造の区間問題を解決するためにチャンキングの概念を使用するもう一つの古典的な方法であるSQRT分解に触れます。
カリキュラム
1、ハッシュの基本的な考え方
2.ハッシュ関数の設計
3.チェーンアドレス方式
4.Javaのハッシュテーブル
5.アイデアのチャンキング
6、SQRT分解
7、SQRT分解処理区間問題の使用
ステージ4:アルゴリズムとデータ構造の世界
第14週 非比較順序
この週では、ソートアルゴリズムは必ずしも比較に基づいているわけではなく、要素を比較することなく特定のクラスのオブジェクトをソートすることが可能であること、すなわち非比較ソートアルゴリズムについて学びます。カウントソート、バケットソート、ベースソートについて学習します。
カリキュラム
1.非比較順序
2、計数選別方式
3.バケット選別法
4.ベースオーダーメソッド
5.LSDとMSD
6.非比較選別の性能試験
7.非比較選別と比較選別の性能比較
第15週 パターン・マッチング
アルゴリズムの重要なクラスであるパターンマッチングを学びます。基本的なパターンマッチングから、有名なKMPアルゴリズムを紹介します。KMPアルゴリズムの2つの実装を学習し、コンピューティングにおける重要な概念であるステートマシンに触れます。
カリキュラム
1.単純なパターンマッチングアルゴリズム
2.KMPアルゴリズム
3.KMPアルゴリズムにおけるLPS配列
4.ステートマシン
5.ステートマシンのその他の応用
6.ローリングハッシュ
7.RKアルゴリズム
8.RKアルゴリズムの古典的問題点
第16週 ランダム化アルゴリズム、外部記憶アルゴリズムなど
最終週はアルゴリズムとデータ構造について学びます。ランダム化アルゴリズムの世界を探求し、クヌースシャッフルアルゴリズムやリザーバーサンプリングアルゴリズムについて学びます。アウトオブメモリのアルゴリズムとデータ構造の世界を探求し、クラスBツリーやアウトオブメモリで問題にアプローチする方法やアイデアについて学びます!
カリキュラム
1.ランダム化アルゴリズム
2.クヌースシャッフリングアルゴリズム
3.クヌースシャッフリングアルゴリズムの適用
4.貯水池サンプリングアルゴリズム
5.Bクラスの樹木
6.アウターオーダー
7.より多くの外部メモリアルゴリズムとデータ構造
8.大規模データ処理手法
9.幅広いアルゴリズムとデータ構造




Read next

Object.create()、{} vs. new object()

I.: は Object の組み込みメソッドで、新しいオブジェクトを作成し、既存のオブジェクトを使用して新しく作成されたオブジェクトを提供します。

Jul 23, 2020 · 3 min read