TIL 40最初のSolo Day



今日の目標。🗒


BigO記号✓の整理

1.BigOマーク法は?


数学はアルゴリズムの性能を表す記号です.
時間的複雑さと空間的複雑さを表現できます.
大きなエラータグは、アルゴリズムの実際の実行時間を表しません.
その目標は、データまたはユーザー成長率に基づいてアルゴリズムのパフォーマンスを予測することです.

種類


• O(1) Constant complexity
入力値が増加しても時間は増加しません.
function O_1_algorithm(arr, index) {
	return arr[index];
}

let arr = [1, 2, 3, 4, 5];
let index = 1;
let result = O_1_algorithm(arr, index);
console.log(result); // 2
• O(n) Linear complexity
入力値が増加するにつれて、時間も同じ割合で増加します.
function O_n_algorithm(n) {
	for (let i = 0; i < n; i++) {
	// do something for 1 second
	}
}
• O(log n) Logarithmic complexity
アルゴリズムのシンボルは、必要な値にナビゲートするたびに半減します.
let nthPower = function (base, exponent) {
  // Base case:
  if (exponent === 0) {
    return 1;
  // If exponent is odd
  } else if (exponent % 2 !== 0) {
    return base * nthPower(base, exponent - 1);
  // If exponent is even
  } else {
    return nthPower(base * base, exponent / 2);
  }
};
• O(n^2) Quadratic complexity
入力値が増加するにつれて、時間は入力値の平方数のパーセントで増加します.
function O_quadratic_algorithm(n) {
	for (let i = 0; i < n; i++) {
		for (let j = 0; j < n; j++) {
		// do something for 1 second
		}
	}
}
• O(2^n) Exponential complexity
入力値が増加するにつれて、時間はジオメトリレベルで増加します.
マーキング法で最も遅い時間複雑度を有する.
function fibonacci(n) {
	if (n <= 1) {
		return 1;
	}
	return fibonacci(n - 1) + fibonacci(n - 2);
}
参考資料:https://www.youtube.com/watch?v=6Iq5iMCVsXA&t=127s
コード状態UrClass

エキストラ


学習反応.
oh myzshトピック設定

Today's key💡


大悟マーク法を整理しているうちに、最初は理解できなかったことが理解できました!
82 oh myzshトピックが設定されており、より読みやすい端末を使用できます.
沴反応の基本概念を勉強している

Self-Evaluation


ブログの必要性を感じて、今まで毎日TILを書いていました.
書き続けてきたことから達成感を感じましたが、今は質を上げる時になったようです.
そこでDailyScrumでブログ作成テンプレートを作成しました.
これからは毎日テンプレートに従ってブログを書きます.
これらがきちんと積み重ねられて、これからきっと収穫があることを望んでいます.