私が5のように私に説明してください:時間複雑さ
4471 ワード
私が5歳のように私に説明してください:
時間複雑度
皆さんこんにちは!畝
時間の複雑さは単にプログラムがそのタスクを完了するのにかかる時間の尺度です.時間の複雑さは、プログラミング中にあらゆる点で重要な役割を果たしている.では、今すぐシンプルにして学びましょう.
内容
時間複雑性を見つける方法?
どのアルゴリズムが我々の仕事のためによりよいかについて確認するために、1つの通常の方法は我々のコンピュータの両方のアルゴリズムを走らせて、1つがより少ない時間をとっている点に注意することです.しかし、時間の複雑さを見つける方法は、結果がデバイスのパフォーマンスのような要因、入力されたものに依存するので、効果的でありません.
漸近解析では,与えられた入力サイズに基づいて性能を評価した.すなわち、アルゴリズムによって実行される基本ステップ数をカウントして実行を終了させることによって時間複雑性を推定する.
より良い方法でこれを理解する例を見てみましょう.
第1ケース
//psuedocode
int i = 1 to N
N = N + N
print N
2番目のケース//pseudocode
return N * N
最初の場合では、時間はNに依存する.第2の場合では、我々が取るNのどんな値も、1ステップ(Nに依存しない)で結果を得ます.漸近解析の理解
例として、t(n)=n ^ 2+2 n+8として得られる時間複雑関数が考えられる.ここで、nの大きな値については、(2 n + 8)はn ^ 2と比較して有意になりません.
Big‐O複雑性の解析
for(int i=0; i < 25; i++){
//statments
}
for(int i= n; i > 0; i--){
//statments
}
for(int i= 0; i < n; i++){
for(j= 0 ;j < n; j++){
//statments
}
}
for(int i = 0; i < n; i = i * c){
//statments
}
ビッグオーシート
組み込み関数の時間複雑性を考慮するか?
はい、我々は時間の影響を与える組み込み関数の時間の複雑さを考慮する
Collections.sort()
javaではマージソートを使い,o(nlogn)の複雑さを持つ.sort()
Pythonではtimsortを使い、o ( nlogn )などの複雑さを持ちます.条件文の時間計算量
//pseudocode
input n
if n<7
print "n is less than 7"
else
for int i = 0 to n
print i
ここで、私たちが与える入力が7未満であるならば、上記のコードを観察してください、そして、時間複雑さがo(1)であるように、我々はprint声明だけを実行します.入力が7より大きいならば、N回のために実行するforループがあります.したがって、複雑さはNです.したがって、最高のケース時間複雑さはO(1)です、そして、最悪のケースはO(N)です.それです.今、あなたは自分でコードの時間の複雑さを見つけることができます.畝
あなたが好きかもしれない他の記事
Reference
この問題について(私が5のように私に説明してください:時間複雑さ), 我々は、より多くの情報をここで見つけました https://dev.to/laasyasetty/explain-to-me-like-i-am-five-time-complexity-h3lテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol