アルファベット
Big O?
いろいろな問題を解決する方法から何が一番いいかがわかります.コードの一般化によって名前が付けられます.
Big O Notation?
あいまいな測定定型方法.アルゴリズムに入力値が大きいほど、実行時間が長くなる関係です.トレンドだけに注目!(詳細はスキップします.)
あいまいな測定定型方法.アルゴリズムに入力値が大きいほど、実行時間が長くなる関係です.トレンドだけに注目!(詳細はスキップします.)
f(n)=n//直線
f(n)=n^2//次関数
f(n)=1//固定値
1.O(n)動作の個数はnの倍数に関係する.
function addUpTo(n){
let total = 0;
for(let i = 1; i <n; i++{
total++;}
return total; }
2.O(1)は常に3つの操作があるfunction addUpTo(n){
return n*(n+1)/2;}
ex)別の例function countUpAndDown(n){
console.log('Going Up!");
for(let i =0; i<n; i++){
console.log(i);}
console.log('At the top! Going down...');
for(let j = n -1; j >=0; j--){
console.log(j);
console.log('Back down. Bye!');}}
いくつかのO(n)にかかわらず,トレンドが重要であるため,O(n)である.ex)別の例-O(n^2)
function printAllPairs(n){
for(let i =0; i<n; i++){
for(let j =0; j<n; j++){
console.log(i,j);} } }
簡略化時間複雑度BigO符号
目測規則
1.上司のことは気にしない。
O(2n) ❌ O(n) ⭕️
O(500) ❌ O(1) ⭕️
O(13n^2) ❌ O(n^2) ⭕️
2.もっと小さい単位は気にしない。
O(n + 10) ❌ O(n) ⭕️
O(100n + 50) ❌ O(n) ⭕️
O(n^2 + 2n) ❌ O(n^2) ⭕️
ex) O(n)
logALeast5(n){
for(let i = 1; i<=Math.Max(5,n); i++){
console.log(i);
}
}
x)O(1)-5の下の数字に注意するだけで、nはどうでもいい.logAMost5(n){
for(let i = 1; i<=Math.Min(5,n); i++){
console.log(i);
}
}
くうかんふくざつさ
目測規則
1.ほとんどの原語(booleans、numbers、undefined、null)は定数空間である。
2.stringsはO(n)spaceです。(nは文字列の長さを表す。
3.参照タイプ(オブジェクトなど)はO(n)spaceです。(nは配列長オブジェクトにおけるキーの個数を表す。)
x)O(1)Space-nはどうでもいい.
function sum(arr){
let total = 0;
for(let i = 0; i < arr.length; i++){
total += arr[i];}
return total;
}
x)O(n)Space−arrの長さが重要である.function double(arr){
let newArr = [];
for(let i = 0; i < arr.length; i++){
newArr.push(2 * arr[i]);
return newArr;
}
ログと色の再生
対数=>指数の反対
log2(8) = 3
log2(value) = exponent => 2^exponent = value
Reference
この問題について(アルファベット), 我々は、より多くの情報をここで見つけました https://velog.io/@hoje15v/빅오-표기법Big-O-Notationテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol