【データ構造とアルゴリズムの美しさ】01-要点を把握し、体系的かつ効率的にデータ構造とアルゴリズムを学ぶには?

1.データ構造とアルゴリズムとは

  過度に学術的な概念の定義は比較的抽象的であり、理解するのが困難です。データ構造とアルゴリズムの2つの概念を、広いレベルと狭いレベルから理解しています。

一般化された角度

  大まかに言えば、データ構造は、データのグループのストレージ構造を指します。アルゴリズムは、データを操作するための一連のメソッドです。つまり、データ構造はデータの「配置方法」を解決し、アルゴリズムはデータの「使用方法」を決定します。

  さらに理解するために、例として図書館のシーンを見てみましょう。

  図書館の本の量は膨大で、まず、社会科学、科学技術、新聞、定期刊行物などのカテゴリー別に閲覧室を設置する必要があります。各閲覧室では、本の索引番号順に配置されています。これが「データ構造」です。本を借りたいときは、各閲覧室に行って一つずつ探すか、インデックス番号を検索して、対応する閲覧室に直接行けます。これらのさまざまな検索方法は、実際には「アルゴリズム」です。

2.狭い角度

  狭義では、キュー、スタック、ヒープ、バイナリ検索、動的プログラミングなど、いくつかの典型的なデータ構造とアルゴリズムを指します。

 

第二に、データ構造とアルゴリズムの関係

  データ構造とアルゴリズムの2つの概念には、「フォーカスが外れていない、Mengが外れていない」という意味があります。私たちが常にそれらを組み合わせている理由は、データ構造とアルゴリズムが補完的であるためです。データ構造はアルゴリズム用であり、アルゴリズムは特定のデータ構造に作用する必要があります。アルゴリズムの観点からデータ構造を分離することはできません。また、データ構造の観点からアルゴリズムを分離することもできません。データ構造は静的であり、データを編成するための単なる方法です。その上でアルゴリズムを操作および構築しないと、既存のデータ構造を分離することはできません。

 

3.学習の焦点

1.複雑さの分析

  データ構造とアルゴリズムを学ぶには、まずデータ構造とアルゴリズムの複雑さの分析における最も重要な概念を理解する必要があります。

  複雑性分析は、データ構造とアルゴリズムのコースのほぼ半分を占めており、データ構造とアルゴリズム学習の本質です。データ構造とアルゴリズムは、データをより経済的かつ高速に保存および処理する方法の問題を解決するため、効率とリソース消費を考慮する方法が必要です。これは複雑さの分析です。複雑度分析は、九陽神聖スキルと言えますが、内部スキルをベースにすれば、動きを早く習得できます。

2.データ構造とアルゴリズム本体

  まず、データ構造とアルゴリズムの全体的な理解を確立するために、フレーム図を見てみましょう。

  

  もちろん、初心者または非アルゴリズムエンジニアとして、上の図のすべての知識ポイントを習得する必要はありません。2部グラフや最大フローなど、多くの高度なデータ構造とアルゴリズムが日常の開発で使用されることはほとんどありません。主な矛盾を理解し、次の2つの「トップ10」を征服することを学ぶことは、インタビューと日常業務に対処するのに十分です。

  トップ10データ構造

  配列、リンクリスト、スタック、キュー、ハッシュテーブル、バイナリツリー、ヒープ、ジャンプテーブル、グラフ、トライツリー。

  トップ10アルゴリズム

  再帰、並べ替え、バイナリ検索、検索、ハッシュアルゴリズム、貪欲アルゴリズム、分割統治アルゴリズム、バックトラッキングアルゴリズム、動的プログラミング、文字列マッチングアルゴリズム。

  これらの基本的なデータ構造とアルゴリズムをマスターしてから、より複雑なデータ構造とアルゴリズムを学ぶと、簡単に始めることができます。

 

4.学習方法

  データ構造とアルゴリズムを学習するプロセスでは、腐敗ではなく注意を払う必要があります。次の4つの問題に注意してください:「起源」、「自己特性」、「解決に適した問題」、「実際のアプリケーションシナリオ」。データ構造とアルゴリズムを学習するプロセスは、トレーニングを考える上で非常に優れたプロセスであるため、受動的に覚えたり、弁証法的に考えたり、理由を尋ねたりしないでください。

1.練習しながら学び、質問を適切に磨きます

  データ構造とアルゴリズムには、実践に対する高い要件があります。学習プロセスでの実践的な実践に加えて、今週の学習に関与するデータ構造とアルゴリズムに焦点を合わせ、週にさらに1〜2時間かかります。これらはすべて自分で作成し、コードで実装します。これは単に見たり聞いたりするよりもはるかに優れています。

  面接前の準備については、適切な量の質問をブラッシングする必要があります。質問のブラッシングに時間をかけすぎないでください。GoogleやFacebookなどの企業にインタビューしたくない場合を除き、アルゴリズムの質問は非常に非常に難しく、短期的にテストの正確さを向上させるために多くの質問をブラッシングする必要があります。国内企業、BATの技術面接であれば、原則に精通し、適度に練習すれば十分です。

2.もっと考え、もっと話し合う

3.限られた時間

  大学時代にニューオリエンタルの語彙レッスンを見てメリットを得た概念の1つは、学習のための詳細な時間計画を立てる必要があります。前線を長く伸ばしすぎず、集中して時間をかけて学習を完了してください。そうしないと、学期が過ぎても、放棄されたままになる可能性があります。これは一般的な原則だと思いますが、データの構造やアルゴリズムを学ぶときは、自分自身のために良い時間計画を立てるべきです。

4.小さな目標

  退屈な学習プロセスでは、Daguaiのアップグレードと同じように、実用的な目標を設定できます。たとえば、調査の各部分の後にブログを書くか、情報が正しくないか改善できる領域を見つけます。これは、学習に対する肯定的なフィードバックにつながります。

5.繰り返す

  学習は繰り返しの反復と連続的な降水のプロセスであり、一晩でそれを達成することを期待しないでください。一部の知識ポイントが一度学習されるのは正常であり、完全に理解することはできません。数回繰り返し勉強すれば、確かに「何が新しいのかを知る」ことができるでしょう。

おすすめ

転載: www.cnblogs.com/murongmochen/p/12678628.html