大規模ウェブサイトのアルゴリズムとアーキテクチャに関する簡単な説明

大規模ウェブサイトのアルゴリズムとアーキテクチャに関する簡単な説明

順序

先月、上司が「大規模ウェブサイトのアルゴリズムとアーキテクチャに関する簡単な説明」という講義をしてくれて、とても役に立ちました。記事が長すぎるため(データ構造だけでもおそらく 20 種類以上あります)、一度にすべてを理解することができませんので、理解したとおりに章ごとに共有します。

今週は、さまざまなデータ構造とアルゴリズムを理解するために資料を調べました。

個人的に良いと思う本をいくつかお勧めします。 - 電子書籍をここに置きました: http://download.csdn.net/user/rtxbc。ダウンロードする必要がある場合は、ここからダウンロードしてください。

「ポインタの芸術。蔡明志」 - 私は C 言語に関する部分だけを読みました。個人的には、C 言語で最も難しいのはポインターだと感じています。

「C言語を使用したデータ構造 [Zhu Zhanli]」 - Yan Weimin の本も良いのですが、その中の文法の多くは抽象文法であり、実行できません。個人的には、ターミナルで実行する方法がなければ、感心するのは難しいと思います。

アルゴリズム入門

勉強のためにダウンロードした電子書籍(スクリーンショット):

アルゴリズムの構造

導入

1984年、パスカルセマンティクスと構造化プログラミングの革新により、ヴォスは「アルゴリズム + データ構造 = プログラム」を提案し、その年にチューリング賞を受賞しました。

現在、テクノロジーは日々変化しており、インターネットテクノロジーは絶えず発展し、歴史に新たな一章を開いています。このとき、「アルゴリズム + アーキテクチャ = インターネット プログラム」を提案する人もいました。

この時代を生きるプログラマーにとって、これは何を意味するのでしょうか?

この記事から、大規模な Web サイトのアルゴリズムとアーキテクチャについて簡単に説明します。今日はまず基本を理解し、その後徐々に移行していきます。

#p#

検索アルゴリズム(スタンドアロン)

1. 順序付けられていない配列があります。

2. 7 から 20 までの数字を見つけるには、どのようなアイデアがありますか?

次の2点は不思議ではありません。

1. バブルソート

2》二分探索は高速

3. Cコードの実装

[[94764]]実行結果

#p#

配列にデータを挿入する

配列の問題: 挿入が遅すぎるため、データを移動する必要があります。

次のコードをご覧ください。

[[94764]]実行結果

リンクリストを試す

[[94764]]コード構造

リンクリストにデータを挿入する

[[94764]]

リンクリストの特徴は、挿入が高速で、検索が低速であることです。

コード実装:

[[94764]]実装

#p#

実行プロセスをご覧ください

つまり、バイナリツリー(Binary Tree)が存在するのです。

上記の 2 つの構造 (配列とリンク リスト) にはそれぞれ欠点があることに気づくのは難しくありません。

1》配列は更新時に多くのリソースを消費し、後続の要素を1つずつ移動する必要があります。

2》リンクリストを照会する場合は、先頭から1つずつ比較して、照会する内容を選択する必要があります。

要約すると、クエリと更新がより高速な構造が必要なので、バイナリ ツリーを使用します。記事が長くなりすぎたので、次回の記事で紹介を続けます。

オリジナルリンク: http://www.cnblogs.com/baochuan/archive/2012/09/27/2704994.html

<<:  大規模ウェブサイトのアルゴリズムとアーキテクチャについての簡単な説明(パート 2)

>>:  アルゴリズム設計者が新たな人気者になる

ブログ    

推薦する

自動運転車の実現はAIと人間のゲームである

「人間がテクノロジーを生み出すペースは加速しており、テクノロジーの力は指数関数的に成長しています。指...

医薬品開発の近代化への道:AI技術の適用から得られた経験と教訓

医薬品の発見と開発の加速は大きなビジネスであり、業界の運営コストは高いため、急速に成長しているこの業...

...

OpenAIのCLIPは「平易な言葉」を使った正確な画像検索で皆を驚かせた

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

大型モデルの欠点を補うことに特化したRAGでは、どのような新たな進歩があったのでしょうか?このレビューでは明らかに

大規模言語モデル (LLM) は私たちの生活や仕事の一部となり、その驚くべき汎用性とインテリジェンス...

タイム誌のAI分野で最も影響力のある100人:フェイフェイ・リー、ジェンスン・ファン、ロビン・リー、イー・ゼンらが選出

ちょうど今、タイム誌が2023年にAI分野で最も影響力のある100人のリストを発表しました。このリス...

Baiduの王海峰氏はオープンソースのディープラーニングプラットフォームPaddlePaddleを2019年のソフトウェアエキスポに導入した。

「ディープラーニングフレームワークは、インテリジェント時代のオペレーティングシステムです。百度のP...

表の数学的推論の正解率は98.78%です! UCLA が新しい「カメレオン推論フレームワーク」を発表

自然言語処理タスクで目覚ましい成功を収めた大規模言語モデル (LLM) は、優れたパフォーマンスを示...

ニューラル放射線フィールドは「神経」を取り除き、3D効果の品質を低下させることなくトレーニング速度を100倍以上向上させます。

2020年、カリフォルニア大学バークレー校、Google、カリフォルニア大学サンディエゴ校の研究者...

クロード3の「自己認識」事件が爆発、マスクはじっとしていられず、OpenAIにはバックアッププランがあることが明らかに

クロード3は発売されてから24時間以上経ちますが、今でも人々の認知をリフレッシュさせています。量子物...

eMule プロトコル スライス選択アルゴリズムの分析

ダウンロードはデータの送信であることはご存じのとおりです。この点に関しては、すでに合意内容について多...

Cacti パーセンタイル監視アルゴリズム

Cactiパーセンタイル監視アルゴリズムcacti のテンプレート自体はハードディスクの使用サイズし...

ディープラーニングと靴を組み合わせると、誰かがそれを使ってストレスレベルを検出しようとします。ワイヤレス操作、84%の精度

ビッグデータダイジェスト制作著者: カレブ現代人の生活プレッシャーはますます大きくなっていると言わざ...

このデータ サイエンスの間違いに注意し、30 時間以上の無駄な作業を回避しましょう...

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

人間を機械に置き換える流れはますます激しくなっており、この2つの発展点は無視できません。

近年、伝統産業の変革の要求が継続的に解放されるにつれて、人間を機械に置き換えることが重要なトレンドに...