[資料構造]#1資料構造、#2回帰
18年第2学期に受けた資料構造の授業を復習し、整理する.
資料構造:コンピュータ内のデータを整理および整理するための様々な構造(スタック、キュー、リスト、辞書、ナビゲーション構造、グラフ、ツリー...) アルゴリズム:コンピュータで問題を解くステップステップ(疑似コードで表すことが多い) データ型:特定のプログラミング言語によって提供されるデータ/演算の集合 抽象データ型:抽象定義データ型.何だけを定義し、どのように実施するかを定義しません. 時間複雑度分析 実稼働時間測定 アルゴリズムの複雑度分析 空間複雑度分析
時間・空間複雑度関数を簡単に表現するためにBig−Oマーキング法が出現した.関数の「次元」は重要なので、次元数を基準に表します.
ただし、プログラムを実行するときは、すべての最適、平均、および最悪の状況を考慮します.△通常、最悪の場合はそうです.
再帰:アルゴリズムまたは関数が実行中に「自己」を呼び出して問題を解決するテクニック.必ず止まるところがある.
時間複雑度O(n),空間複雑度O(1)配列の配列を探索するのに有利である. 中間値が同じ場合はナビゲーションが完了し、小さい場合は前のリストで再度ナビゲートし、大きい場合は後のリストで再度ナビゲートします(再ナビゲート->戻る!)
時間複雑度O(logn)
すでに#25で議論されている.
本科の授業資料では,関数を複数回呼び出すので,空間の複雑さが大きくなると言うだけでスキップする.でも臨時に試験範囲が設けられていたので、気にならずスキップしてしまい、今から見ると、かっこいい授業でのコスプレにも関わってきました.
柱計3本. 原版は一度に1つ引っ越します. の小さな円板には円板を拡大することはできません. 64枚の基板の大きさは異なります. 高校の時に数列の問題をたくさんしましたが、面白かったです.
最大を1つ残して、n-1個移動して、それから最大を移動して、更にn-1個移動します
=>一般式:a n+1=2 a n+1
=>a n=2^n-1(時間複雑度:O(2^n)
1.資料構造
1.プログラム=データ構造+アルゴリズム
2.データ型&抽象データ型
3.アルゴリズム性能分析
4.序数表現
時間・空間複雑度関数を簡単に表現するためにBig−Oマーキング法が出現した.関数の「次元」は重要なので、次元数を基準に表します.
Big-O, Ω, θ
ただし、プログラムを実行するときは、すべての最適、平均、および最悪の状況を考慮します.△通常、最悪の場合はそうです.
2.在貴
1.回帰と繰り返し
2. factorial
時間複雑度O(n),空間複雑度O(1)
// 반복
int factorial(int n) {
int fact = 1;
for (int i = n; i > 0 ; i--) {
fact *= i ;
}
return fact;
}
// 재귀
int factorial(int n) {
if (n <= 1) return 1;
else return (n * factorial(n - 1));
// 스택에 쌓아두고 함수 호출함.
}
3.探索バイナリ
時間複雑度O(logn)
binary_search(key, low, high)
if (low <= high) {
middle <- (low + high) / 2
if (key == list[middle]) return middle;
else if (key < list[middle])
return binary_search(key, low, middle - 1);
else
return binary_search(key, middle + 1, high);
4.フィボナッチ数列
すでに#25で議論されている.
本科の授業資料では,関数を複数回呼び出すので,空間の複雑さが大きくなると言うだけでスキップする.でも臨時に試験範囲が設けられていたので、気にならずスキップしてしまい、今から見ると、かっこいい授業でのコスプレにも関わってきました.
5.ハノイの塔
最大を1つ残して、n-1個移動して、それから最大を移動して、更にn-1個移動します
=>一般式:a n+1=2 a n+1
=>a n=2^n-1(時間複雑度:O(2^n)
void hanoi_tower(int n, char from, char aux, char to) {
if (n == 1) {
from에서 to로 원판 옮기기. (print from, to)
} else {
hanoi_tower(n-1, from, to, aux);
from에 있는 한 개의 원판 to로 옮기기. (print from, to)
hanoi_tower(n-1, aux, from, to);
}
}
Reference
この問題について([資料構造]#1資料構造、#2回帰), 我々は、より多くの情報をここで見つけました https://velog.io/@ddosang/자료구조-1-2-재귀テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol