Big O Notation: フローチャートを使用した時間計算量の理解
JavaScript における Big-O の複雑さに関する Edison の投稿を強くお勧めします。これは、このトピックに関して私が見た中で最も親切な記事です。
記事は利用できなくなりました
ここでは、フローチャートを使用して Big-O の時間計算量を視覚化する際に、エジソンからポイントを得ます。
ログ(n)
対数時間
時間計算量を視覚的に理解するには、イテレータ (i*2 など) を確認し、関数に含まれるループの数を確認します。
の上)
線形時間
線形時間と対数時間は似ていますが、ループの条件により出力は異なります。 exampleLogarithmic(100) は 1、2、4、8、16、32、64 を返しますが、exampleLinear(100) は単純に 100 未満のすべての正の整数をループします。
O(n^2)
二次時間
ループの数は、n を累乗する指数と一致します。文字通り、時間の複雑さが増加するにつれて関数が大きくなるのがわかります。
O(n^3)
立方時間
これは時間計算量を理解する唯一の方法ではありませんが、時間計算量が増加するにつれて関数が文字通り長くなるのを確認することは非常に役立ちます。場合によっては、白黒で書かれたコードが
で表示されることがあります。ブロックは視覚的な学習者に要点を伝えません。 <p>それでは、クイズをしてみましょう。この関数の時間計算量はどれくらいですか?</p> <p>あなたの推測を立ててください...<br><br> <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173601046526425.jpg" class="lazy" alt="Big O Notation: Understanding Time Complexity using Flowcharts"><br><br> 直線的ですね!ループが 1 つあり、反復子によってループが整数をスキップしないため、それがわかります。</p> <p>この関数の時間計算量はどれくらいですか?<br><br> <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173601046682236.jpg" class="lazy" alt="Big O Notation: Understanding Time Complexity using Flowcharts"><br><br> 自分自身を疑わないでください。これは最初の例とは少し異なりますが、線形時間計算量を持っています。</p> <p>この関数の時間計算量はどれくらいですか?<br><br> <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173601046719860.jpg" class="lazy" alt="Big O Notation: Understanding Time Complexity using Flowcharts"><br><br> ここでパターンが見られるかもしれません。直線的です!</p><p>さて、私の論理の流れを理解しているなら、これはひっかけの質問かもしれません:<br><br> <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173601046876014.jpg" class="lazy" alt="Big O Notation: Understanding Time Complexity using Flowcharts"></p> <p>ループの回数は指数 n で表されると言いました。では、なぜこれは 2 次ではなく線形の時間計算量をもつのでしょうか?</p> <p>別の for ループの中に for ループがある場合、これは 2 次の時間計算量になります。ただし、ある for ループが<em>後に</em>実行される別の for ループの時間計算量は二次ではなく線形です。</p> <p>それでは、この関数の時間計算量はどれくらいですか?<br><br> <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173601046913700.jpg" class="lazy" alt="Big O Notation: Understanding Time Complexity using Flowcharts"><br><br> ここでは難しいことは何もありません。これには二次時間計算量があります。</p> <p>さて、最後の質問ですが、他のすべての質問を問う質問です。この関数の時間計算量は何ですか?<br><br> <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173601047060673.jpg" class="lazy" alt="Big O Notation: Understanding Time Complexity using Flowcharts"><br><br> for ループの条件とループの膨大な数に注目していただければ幸いです。これには、ループ条件 i<n> <p>この投稿の画像は自分のアプリで生成しました。その開発プロセスについては別の投稿で説明しました。</p> <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173601047160481.jpg" class="lazy" alt="Big O Notation: Understanding Time Complexity using Flowcharts">[</p> <h2> ライトハウスで100を達成する方法 </h2> <h3> ender minyard ・ 8月 30 2020 ・ 2 分読み取り </h3> <h2> webperf#速度#javascript#webdev </h2> <p>](/ender_minyard/how-i-got-100-on-lighthouse-2icd)</p> </n></p>
以上がBig O Notation: フローチャートを使用した時間計算量の理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...
