aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main.tex65
-rw-r--r--structure.tex2
2 files changed, 58 insertions, 9 deletions
diff --git a/main.tex b/main.tex
index c885da8..2676213 100644
--- a/main.tex
+++ b/main.tex
@@ -212,12 +212,57 @@ Matching z with c (a)
212\section{Asymptotics}% 212\section{Asymptotics}%
213\label{sec:asymptotics} 213\label{sec:asymptotics}
214 214
215% asymptotics TODO {{{1 % 215% asymptotics {{{1 %
216 216
217\begin{question} 217\begin{question}
218 What is the running time of this algorithm as a function of n? Specify a function f such that the running time of the algorithm is $\Theta(f(n))$. 218 What is the running time of this algorithm as a function of $n$? Specify a function $f$ such that the running time of the algorithm is $\Theta(f(n))$.
219\end{question} 219\end{question}
220 220
221{\centering
222 \begin{minipage}{.7\linewidth}
223 \begin{algorithm}[H]
224 \For(\tcc*[f]{outer loop}){$i = 2$; $i < n$; $i += 1$ }{
225 \For(\tcc*[f]{inner loop}){$j=1$; $j < n$; $j * = i$}{
226 Some $\Theta(1)$ operation\;
227 }
228 }
229 \caption{Equivalent algorithm to one given in Question 3, edited for brevity}%
230 \label{alg:question_3}
231\end{algorithm}
232\end{minipage}
233\par
234}
235
236The outer loop runs in linear time $\mathcal{O}(n)$ whereas the inner loop requires some deconstruction;
237
238Take the first iteration of the inner loop, $i = 2$ and $j$ is initialized at $1$.
239
240\begin{align*}%
241 \label{eq:3_iterations}
242 1^{\text{st}} ~ \text{iteration} &\rightarrow j = j * i \implies j = 2 \\
243 2^{\text{nd}} ~ \text{iteration} &\rightarrow j = 4 \\
244 3^{\text{rd}} ~ \text{iteration} &\rightarrow j = 8 \\
245 \dots \\
246 m^{\text{th}} ~ \text{iteration} &\rightarrow j = i^{m} < n \\
247\end{align*}
248
249$m$ is the last iteration of the inner loop because it hit the stopping condition $i^{m} < n$.
250Using the Equations above we can find the running time for the inner loop to hit stopping condition;
251
252\begin{gather*}
253 i^{m} < n \\
254 m < \log_{i} n
255\end{gather*}
256
257In other words, the inner loop has a running time in the order of $\mathcal{O}(\log{n})$. By the product property of $\mathcal{O}$-notation we have the running time of $\mathcal{O}(n\log_{a}{n}), a > 1$ for the entire algorithm. The base $a$ is useful to answer the rest of the question;
258
259We can specify a function $f$ such as $f = n \log_{b}(n)$ where $b > 1$. From the course slides;
260
261\begin{equation*}
262 \lim_{n \to \infty}\frac{n\log_{a}{n}}{n \log_{b}{n}} = c
263\end{equation*}
264
265And when the limit of two functions $f, g$ converge to some constant $c$, then $f(n) = \Theta(g(n))$.
221 266
222% 1}}} % 267% 1}}} %
223 268
@@ -280,11 +325,13 @@ By the definition of Big $\mathcal{O}$ notation, we have;
280 325
281For $c > 1$ and $n_{0} > 1$ we have; 326For $c > 1$ and $n_{0} > 1$ we have;
282 327
283\begin{eqnarray*}% 328% TODO: this makes zero sense? <06-11-20, yigit> %
284 f(n) \le f(n)^{2} \quad \forall n \ge n_{0} \\ 329
285 g(n) = f(n)^{2} \\ 330\begin{align*}%
286 f(n) \le c\cdot g(n) \quad \forall n \ge n_{0} 331 f(n) &\le f(n)^{2} \quad \forall n \ge n_{0} \\
287\end{eqnarray*} 332 \text{take} ~ g(n) &= f(n)^{2} \\
333 f(n) &\le c\cdot g(n) \quad \forall n \ge n_{0}
334\end{align*}
288 335
289\begin{info}[] 336\begin{info}[]
290 $f(n) + o(f(n)) = \Theta(f(n))$ 337 $f(n) + o(f(n)) = \Theta(f(n))$
@@ -337,11 +384,11 @@ Otherwise, indicate that H or L do not exist.
337\end{info} 384\end{info}
338 385
339\begin{info}[] 386\begin{info}[]
340 $f(n) = \sum^{\lceil{log n}\rceil}_{k=0} \frac{n}{2^{k}}$ 387 $f(n) = \sum^{\lceil{\log{n}}\rceil}_{k=0} \frac{n}{2^{k}}$
341\end{info} 388\end{info}
342 389
343\begin{info}[] 390\begin{info}[]
344 $f(n) = n(log n)^{2}$ 391 $f(n) = n(\log n)^{2}$
345\end{info} 392\end{info}
346 393
347 394
diff --git a/structure.tex b/structure.tex
index 62deff6..e536c85 100644
--- a/structure.tex
+++ b/structure.tex
@@ -22,6 +22,8 @@
22\usepackage{amsmath,amsfonts} % Math packages 22\usepackage{amsmath,amsfonts} % Math packages
23\usepackage{enumerate} % Custom item numbers for enumerations 23\usepackage{enumerate} % Custom item numbers for enumerations
24\usepackage[ruled]{algorithm2e} % Algorithms 24\usepackage[ruled]{algorithm2e} % Algorithms
25% \usepackage{algorithm}
26% \usepackage[noend]{algpseudocode}
25\usepackage[framemethod=tikz]{mdframed} % Allows defining custom boxed/framed environments 27\usepackage[framemethod=tikz]{mdframed} % Allows defining custom boxed/framed environments
26\usepackage{listings} % File listings, with syntax highlighting 28\usepackage{listings} % File listings, with syntax highlighting
27\usepackage[super]{nth} 29\usepackage[super]{nth}