これは記録であり前端面试的话术集锦第二十二篇博文——高频考点(常见数据结构)
、今後もこのブログ記事を更新していきます。❗❗❗
「データ構造やアルゴリズムを学ぶことはフロントエンド エンジニアにとって有益ですか?」という質問がよくあります。
一般に、これらの基本的な規律は短期的にはほとんど効果がありませんが、フロントエンド エンジニアに限定する必要はありません。プログラミングという観点からプログラミングを見たとき、データ構造アルゴリズムは役立つはずであり、将来の天井でもあります。
これらの内容の学習に集中して時間を費やす必要はありませんが、これらのスキルはコードを書く能力を大幅に向上させることができるため、時々少しずつ学習する必要があります。
1. 時間計算量
本題に入る前に、まず時間計算量とは何かを理解しましょう。
通常、アルゴリズムの品質を測定するために、最悪の時間計算量が使用されます。
一定時間とはO(1)
、データ量に関係なく、四則演算などの一定時間の演算のことです。
アルゴリズムの場合、演算数はデータ量を表すaN + 1
として計算できます。N
この場合、アルゴリズムの時間計算量は になりますO(N)
。時間計算量を計算するとき、データ量は通常非常に大きく、このとき低次項と定数項は無視できるためです。
もちろん、両方のアルゴリズムのO(N)
時間計算量が同じである場合もあるため、2 つのアルゴリズムの品質の比較は、低次項と定数項の比較に依存します。
2. 積み重ねる
2.1 コンセプト
スタックは線形構造であり、コンピューターでは非常に一般的なデータ構造です。
スタックの特徴は、先入れ後出しの原則に従って、データは一方の端でのみ追加または削除できることです。