この記事は主にPythonアルゴリズム表現の概念リテラシーチュートリアルを詳しく紹介していますので、興味のある方は参考にしてください。
具体的な内容は次のとおりです。以下の通り
定数次数O(1)
定数とは値が変わらない定数のことを指します
なぜ次のアルゴリズムの時間計算量は変化しないのか。 O(3)ですが、O(1)です。
int sum = 0,n = 100; /*执行一次*/ sum = (1+n)*n/2; /*执行一次*/ printf("%d", sum); /*行次*/
このアルゴリズムの実行回数関数は f(n)=3 です。 big O 次数を導出する私たちの方法によると、最初のステップは定数項 3 を 1 に変更することです。最上位項を保持すると、最上位項がまったくないことがわかり、このアルゴリズムの時間計算量は O(1) になります。
さらに、このアルゴリズムのステートメント sum=(1+n)*n/2 に 10 文があると想像してみましょう。つまり:
int sum = 0, n = 100; /*执行1次*/ sum = (1+n)*n/2; /*执行第1次*/ sum = (1+n)*n/2; /*执行第2次*/ sum = (1+n)*n/2; /*执行第3次*/ sum = (1+n)*n/2; /*执行第4次*/ sum = (1+n)*n/2; /*执行第5次*/ sum = (1+n)*n/2; /*执行第6次*/ sum = (1+n)*n/2; /*执行第7次*/ sum = (1+n)*n/2; /*执行第8次*/ sum = (1+n)*n/2; /*执行第9次*/ sum = (1+n)*n/2; /*执行第10次*/ printf("%d",sum); /*执行1次*/
実際、n が何であっても、上記の 2 つのコードはは 3 倍の合計です。 12 回の実行の差です。このアルゴリズムは、問題の大きさ(n の大きさ)に関係なく実行時間が一定であるため、時間計算量 O(1) と呼ばれ、定数次数とも呼ばれます。
注: この定数がどのようなものであっても、O(3)、O(12) などの他の数値ではなく、O(1) として記録します。これは初心者がよく犯す間違いです。
Big O 順序メソッドの導出
1. 実行時のすべての加法定数を定数 1 に置き換えます
2。最高位項が存在し、1 でない場合は、この項に乗じた定数を削除します
対数次数 O(log2n)
対数 a の x 乗が N に等しい場合 (a> ;0、および a が 1 に等しくありません)の場合、数値 x は a を底とする N の対数(対数)と呼ばれ、x=logaN、と記録されます。このうち、aは対数の底、Nは実数と呼ばれます。
5^2 = 25、2= log5 25 として記録されます対数は演算であり、指数関数との逆数演算です。たとえば、
① 3^2=9 2=log9;
② 4^(3/2)=8 3/2=log 8 ;
③ 10^n=35 n=lg35。使いやすくするために、人々は底が 10 の常用対数を lgN として徐々に記録します
対数次数int count = 1;
while (count < n)
{
count = count * 2; /* 时间复杂度为O(1)的程序步骤序列 */
}
カウントが 2 倍になるたびに、n に 1 ポイントずつ近づくためです。
つまり、2 を掛け合わせた数が n より大きい場合、ループは終了します。
2^x=n から、x=log2n が得られます。したがって、このループの時間計算量は O(logn) です。
線形次数O(n)問題サイズに比例して実行時間は増加する
data = [ 8,3,67,77,78,22,6,3,88,21,2] find_num = 22 for i in data: if i == 22: print("find",find_num,i )対数線形次数O(nlog2n)
2乗次数O(n^2)for i in range(100):
for k in range(100):
print(i,k)
3次次数O(n^3)
指数次数O(2^n)。
問題サイズnが増加し続けると、上記の時間計算量は増加し続け、アルゴリズムの実行効率は低下します。
以上がPython アルゴリズム表現の概念リテラシーに関するチュートリアルの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

PythonまたはCの選択は、プロジェクトの要件に依存します。1)迅速な開発、データ処理、およびプロトタイプ設計が必要な場合は、Pythonを選択します。 2)高性能、低レイテンシ、および緊密なハードウェアコントロールが必要な場合は、Cを選択します。

毎日2時間のPython学習を投資することで、プログラミングスキルを効果的に改善できます。 1.新しい知識を学ぶ:ドキュメントを読むか、チュートリアルを見る。 2。練習:コードと完全な演習を書きます。 3。レビュー:学んだコンテンツを統合します。 4。プロジェクトの実践:実際のプロジェクトで学んだことを適用します。このような構造化された学習計画は、Pythonを体系的にマスターし、キャリア目標を達成するのに役立ちます。

2時間以内にPythonを効率的に学習する方法は次のとおりです。1。基本的な知識を確認し、Pythonのインストールと基本的な構文に精通していることを確認します。 2。変数、リスト、関数など、Pythonのコア概念を理解します。 3.例を使用して、基本的および高度な使用をマスターします。 4.一般的なエラーとデバッグテクニックを学習します。 5.リストの概念を使用したり、PEP8スタイルガイドに従ったりするなど、パフォーマンスの最適化とベストプラクティスを適用します。

Pythonは初心者やデータサイエンスに適しており、Cはシステムプログラミングとゲーム開発に適しています。 1. Pythonはシンプルで使いやすく、データサイエンスやWeb開発に適しています。 2.Cは、ゲーム開発とシステムプログラミングに適した、高性能と制御を提供します。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Pythonはデータサイエンスと迅速な発展により適していますが、Cは高性能およびシステムプログラミングにより適しています。 1. Python構文は簡潔で学習しやすく、データ処理と科学的コンピューティングに適しています。 2.Cには複雑な構文がありますが、優れたパフォーマンスがあり、ゲーム開発とシステムプログラミングでよく使用されます。

Pythonを学ぶために1日2時間投資することは可能です。 1.新しい知識を学ぶ:リストや辞書など、1時間で新しい概念を学びます。 2。練習と練習:1時間を使用して、小さなプログラムを書くなどのプログラミング演習を実行します。合理的な計画と忍耐力を通じて、Pythonのコアコンセプトを短時間で習得できます。

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

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