{ "cells": [ { "cell_type": "markdown", "id": "5f5ef7b5", "metadata": {}, "source": [ "# Solution Key: Big O and Algorithm Analysis\n", "\n", "### Part 1: Counting Steps\n", "\n", "**1. Worst-Case Analysis:**\n", "\n", "* **What is the worst-case scenario?**\n", "\n", " * The \"worst-case\" is the input that forces the algorithm to do the most possible work. For the `has_duplicate` function, the goal is to find a matching pair of elements. The algorithm stops as soon as it finds one. Therefore, the longest possible runtime occurs when the algorithm *never* finds a duplicate, because it is forced to check every single possible pair of elements before it can conclude that no duplicates exist. For example, `[10, 20, 30, 40]`.\n", "\n", "* **Step Counting Function $T(n)$:**\n", " Let's analyze the work done for a list of size `n`. The main work happens in the comparison `if L[i] == L[j]:`, which is nested inside two loops. To find the total steps, we need to count how many times that comparison runs.\n", "\n", " Let's trace for a small list, `n=4`. `i` will go from 0 to 3.\n", " * When `i = 0`, the inner loop `j` goes from 1 to 3 (3 iterations). Comparisons: `L[0]==L[1]`, `L[0]==L[2]`, `L[0]==L[3]`.\n", " * When `i = 1`, the inner loop `j` goes from 2 to 3 (2 iterations). Comparisons: `L[1]==L[2]`, `L[1]==L[3]`.\n", " * When `i = 2`, the inner loop `j` goes from 3 to 3 (1 iteration). Comparison: `L[2]==L[3]`.\n", " * When `i = 3`, the inner loop `range(4, 4)` is empty (0 iterations).\n", "\n", " The total number of comparisons is $3 + 2 + 1 = 6$.\n", "\n", " Generalizing this pattern for a list of size `n`, the number of comparisons is:\n", "\n", " $$(n-1) + (n-2) + (n-3) + \\dots + 2 + 1$$\n", "\n", " As shown in the course notes, this sum has a well-known formula:\n", "\n", " $$\\sum_{i=1}^{n-1} i = \\frac{(n-1)n}{2}$$\n", "\n", " If we define our total step function $T(n)$ as being primarily driven by this dominant operation (the comparisons), we get:\n", "\n", " $$T(n) = \\frac{n(n-1)}{2} = \\frac{1}{2}n^2 - \\frac{1}{2}n$$\n", "\n", " This function shows that the number of steps grows quadratically with the input size `n`.\n", "\n", "**2. Best-Case Analysis:**\n", "\n", "* **What is the best-case scenario?**\n", " The \"best-case\" is the input that allows the algorithm to finish its job in the least amount of time. For this function, that means finding a duplicate on the very first try. For example, `[5, 5, 12, 15]`.\n", "\n", "* **How many steps does it take?**\n", " In this scenario, the code executes as follows:\n", " 1. The outer loop starts with `i = 0`.\n", " 2. The inner loop starts with `j = 1`.\n", " 3. The very first comparison, `if L[0] == L[1]:`, is true.\n", " 4. The function immediately executes `return True` and stops.\n", "\n", " The algorithm performs only a handful of steps (a few loop initializations, one comparison, one return). The crucial insight is that this number of steps is **constant**. It doesn't matter if the list has 10 elements or 10 million; if the first two are duplicates, the work done is the same. Therefore, the number of steps is **not dependent on `n`**.\n" ] }, { "cell_type": "markdown", "id": "4bf3fd86", "metadata": {}, "source": [ "### Part 2: Comparing Function Growth\n", "\n", "This section is about determining which of two functions will grow faster as `n` gets very large. The function that grows faster is said to \"eventually dominate\" the other. We are looking for the \"crossover point\" ($n_0$), which is the value of `n` after which the dominant function is always larger. We can find this via algebra, plotting the functions, or trying values.\n", "\n", "1. **$f(n) = 8n + 100$ vs. $g(n) = 2n^2$**\n", " * **Dominant Function:** $g(n) = 2n^2$ is a **quadratic** function ($O(n^2)$), while $f(n) = 8n + 100$ is a **linear** function ($O(n)$). Quadratic functions always grow faster than linear functions for large `n`. Therefore, **$g(n)$ eventually dominates**.\n", " * **Crossover Point:** We need to find the `n` where $2n^2$ becomes permanently greater than $8n + 100$.\n", " * `n=9`: $g(9) = 2(81) = 162$. $f(9) = 8(9) + 100 = 72 + 100 = 172$. ($f(n)$ is bigger).\n", " * `n=10`: $g(10) = 2(100) = 200$. $f(10) = 8(10) + 100 = 80 + 100 = 180$. ($g(n)$ is bigger).\n", " * From this point on, $g(n)$ will continue to be larger. The crossover point is **$n_0 = 10$**." ] }, { "cell_type": "code", "execution_count": 1, "id": "18b69c81", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "mode": "lines+markers", "name": "f(n) = 8n + 100", "type": "scatter", "x": { "bdata": "AAECAwQFBgcICQoLDA0ODxAREhMU", "dtype": "i1" }, "y": { "bdata": "ZABsAHQAfACEAIwAlACcAKQArAC0ALwAxADMANQA3ADkAOwA9AD8AAQB", "dtype": "i2" } }, { "mode": "lines+markers", "name": "g(n) = 2n^2", "type": "scatter", "x": { "bdata": "AAECAwQFBgcICQoLDA0ODxAREhMU", "dtype": "i1" }, "y": { "bdata": "AAACAAgAEgAgADIASABiAIAAogDIAPIAIAFSAYgBwgEAAkICiALSAiAD", "dtype": "i2" } } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermap": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermap" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } } } } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import plotly.graph_objects as go\n", "import numpy as np\n", "\n", "n = np.arange(0, 21)\n", "f_n = 8 * n + 100\n", "g_n = 2 * n**2\n", "\n", "fig = go.Figure()\n", "fig.add_trace(go.Scatter(x=n, y=f_n, mode='lines+markers', name='f(n) = 8n + 100'))\n", "fig.add_trace(go.Scatter(x=n, y=g_n, mode='lines+markers', name='g(n) = 2n^2'))\n", "\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "8cc42cff", "metadata": {}, "source": [ "2. **$f(n) = 10n \\log_2(n)$ vs. $g(n) = \\frac{1}{2}n^2$**\n", " * **Dominant Function:** $g(n) = \\frac{1}{2}n^2$ is **quadratic** ($O(n^2)$), while $f(n)$ is **n-log-n** ($O(n \\log n)$). Quadratic functions grow faster than n-log-n functions. Therefore, **$g(n)$ eventually dominates**.\n", " * **Crossover Point:** We need to find the `n` where $\\frac{1}{2}n^2 > 10n \\log_2(n)$. We can simplify by dividing by `n`: $\\frac{1}{2}n > 10 \\log_2(n)$, or $n > 20 \\log_2(n)$. Let's find this with a plot." ] }, { "cell_type": "code", "execution_count": 2, "id": "b3bc53df", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "mode": "lines+markers", "name": "$f(n) = 10n \\log_2(n)$", "type": "scatter", "x": { "bdata": "AQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwA=", "dtype": "i2" }, "y": { "bdata": "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", "dtype": "f8" } }, { "mode": "lines+markers", "name": "$g(n) = 0.5n^2$", "type": "scatter", "x": { "bdata": "AQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwA=", "dtype": "i2" }, "y": { "bdata": "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", "dtype": "f8" } } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermap": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermap" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAAAr8AAAFoCAYAAABeypPkAAAgAElEQVR4XuydB4AUVbaG/+ruiWTJIFlyVhBBEHPOa46YMWcxPNaA4oJxRVwT6prDGtasa0ARJCg5B0Ek58yk7n7nVlfVVPf0zHRNdRcN/ddb3oSuW+G7NeM3p889RwvLBm4kQAIkQAIkQAIkQAIkkAEENMpvBswyb5EESIAESIAESIAESEAnQPnlg0ACJEACJEACJEACJJAxBCi/GTPVvFESIAESIAESIAESIAHKL58BEiABEiABEiABEiCBjCFA+c2YqeaNkgAJkAAJkAAJkAAJUH75DJAACZAACZAACZAACWQMAcpvxkw1b5QESIAESIAESIAESIDyy2eABEiABEiABEiABEggYwhQfjNmqnmjJEACJEACJEACJEAClF8+AyRAAiRAAiRAAiRAAhlDgPKbMVPNGyUBEiABEiABEiABEqD88hkgARIgARIgARIgARLIGAKU34yZat4oCZAACZAACZAACZAA5ZfPAAmQAAmQAAmQAAmQQMYQoPxmzFTzRkmABEiABEiABEiABCi/fAZIgARIgARIgARIgAQyhgDlN2OmmjdKAiRAAiRAAiRAAiRA+eUzQAIkQAIkQAIkQAIkkDEEKL8ZM9W8URIgARIgARIgARIgAcovnwESIAESIAESIAESIIGMIUD5zZip5o2SAAmQAAmQAAmQAAlQfvkMkAAJkAAJkAAJkAAJZAwBym/GTDVvlARIgARIgARIgARIgPLLZ4AESIAESIAESIAESCBjCFB+M2aqeaMkQAIkQAIkQAIkQAKUXz4DJEACJEACJEACJEACGUOA8psxU80bJQESIAESIAESIAESoPzyGSABEiABEiABEiABEsgYApTfjJlq3igJkAAJkAAJkAAJkADll88ACZAACZAACZAACZBAxhCg/GbMVPNGSYAESIAESIAESIAEKL98BkiABEiABEiABEiABDKGAOU3Y6aaN0oCJEACJEACJEACJED55TNAAiRAAiRAAiRAAiSQMQQovxkz1bxREiABEiABEiABEiAByi+fARIgARIgARIgARIggYwhQPnNmKnmjZIACZAACZAACZAACVB++QyQAAmQAAmQAAmQAAlkDAHKb8ZMNW+UBEiABEiABEiABEiA8stngARIgARIgARIgARIIGMIUH4zZqp5oyRAAiRAAiRAAiRAApRfPgMkQAIkQAIkQAIkQAIZQ4DymzFTzRslARIgARIgARIgARKg/PIZIAESIAESIAESIAESyBgClN+MmWreKAmQAAmQAAmQAAmQAOWXzwAJkAAJkAAJkAAJkEDGEKD8ZsxU80ZJgARIgARIgARIgAQov3wGSIAESIAESIAESIAEMoYA5Tdjppo3SgIkQAIkQAIkQAIkQPnlM0ACJEACJEACJEACJJAxBCi/GTPVvFESIAESIAESIAESIAHKL58BEiABEiABEiABEiCBjCFA+c2YqeaNkgAJkAAJkAAJkAAJUH75DJAACZAACZAACZAACWQMAcpvxkw1b5QESIAESIAESIAESIDyy2eABEiABEiABEiABEggYwhQfjNmqnmjJEACJEACJEACJEAClF8+AyRAAiRAAiRAAiRAAhlDgPKbMVPNGyUBEiABEiABEiABEqD88hkgARIgARIgARIgARLIGAKU34yZat4oCZAACZAACZAACZAA5ZfPAAmQAAmQAAmQAAmQQMYQoPxmzFTzRkmABEiABEiABEiABCi/fAZIgARIgARIgARIgAQyhgDlN2OmmjdKAiRAAiRAAiRAAiRA+eUzQAIkQAIkQAIkQAIkkDEEKL8ZM9W8URIgARIgARIgARIgAcovnwESIAESIAESIAESIIGMIUD5zZip5o2SAAmQAAmQAAmQAAlQfvkMkAAJkAAJkAAJkAAJZAwBym/GTDVvlARIgARIgARIgARIgPLLZ4AESIAESIAESIAESCBjCFB+M2aqeaMkQAIkQAIkQAIkQAKUXz4DJEACJEACJEACJEACGUOA8psxU80bJQESIAESIAESIAESoPzyGSABEiABEiABEiABEsgYApTfjJlq3igJkAAJkAAJkAAJkADll88ACZAACZAACZAACZBAxhCg/GbMVPNGSYAESIAESIAESIAEKL98BkiABEiABEiABEiABDKGAOU3Y6aaN0oCJEACJEACJEACJED55TNAAiRAAiRAAiRAAiSQMQQovxkz1bxREiABEiABEiABEiAByi+fARIgARIgARIgARIggYwhQPnNmKnmjZIACZAACZAACZAACVB++QyQAAmQAAmQAAmQAAlkDAHKb8ZMNW+UBEiABEiABEiABEiA8stngARIgARIgARIgARIIGMIUH4z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" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n = np.arange(1, 200)\n", "\n", "f_n = 10 * n * np.log2(n)\n", "g_n = 0.5 * n**2\n", "\n", "fig = go.Figure()\n", "\n", "fig.add_trace(go.Scatter(x=n, y=f_n,\n", " mode='lines+markers',\n", " name='$f(n) = 10n \\\\log_2(n)$'))\n", "fig.add_trace(go.Scatter(x=n, y=g_n,\n", " mode='lines+markers',\n", " name='$g(n) = 0.5n^2$'))\n", "\n", "\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "e79db1c9", "metadata": {}, "source": [ "Looks like 144." ] }, { "cell_type": "markdown", "id": "206b6339", "metadata": {}, "source": [ "**$f(n) = 2^n$ vs. $g(n) = n^4$**\n", "\n", "**Dominant Function:** $f(n) = 2^n$ is an **exponential** function ($O(2^n)$), while $g(n) = n^4$ is a **polynomial** function ($O(n^k)$). Exponential functions grow dramatically faster than any polynomial function. Therefore, **$f(n)$ eventually dominates $g(n)$**.\n", "\n", "**Crossover Point:** We test values to find where $2^n > n^4$.\n", "\n", "* `n=16`: $2^{16} = 65,536$. $16^4 = (2^4)^4 = 2^{16} = 65,536$. (They are equal).\n", "* `n=17`: $2^{17} = 131,072$. $17^4 = 83,521$. ($f(n)$ is now bigger).\n", "* The crossover point is **$n_0 = 17$**." ] }, { "cell_type": "code", "execution_count": 3, "id": "59c50346", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "mode": "lines+markers", "name": "$f(n) = 2^n$", "type": "scatter", "x": { "bdata": "AQIDBAUGBwgJCgsMDQ4PEBESExQ=", "dtype": "i1" }, "y": { "bdata": "AgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAAAAAgAAAAQAAAAIAAAAEAA=", "dtype": "i4" } }, { "mode": "lines+markers", "name": "$g(n) = n^4$", "type": "scatter", "x": { "bdata": "AQIDBAUGBwgJCgsMDQ4PEBESExQ=", "dtype": "i1" }, "y": { "bdata": "AQAAABAAAABRAAAAAAEAAHECAAAQBQAAYQkAAAAQAAChGQAAECcAADE5AAAAUQAAkW8AABCWAADBxQAAAAABAEFGAQAQmgEAEf0BAABxAgA=", "dtype": "i4" } } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermap": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermap" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABG0AAAFoCAYAAADtmwbTAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3Qd8FHX+//H37KYHQgdBQCxYsfeCP3vFU7FXVNSzoljOXs6up4Kc7dTTw7PX88Q7z4K9994bRQSkk7478/9/ZzchIQl8J7NJZjevveOR7O7nO/Od5/dLzL75zozjeZ4nHggggAACCCCAAAIIIIAAAggggAACkRJwCG0iNR50BgEEEEAAAQQQQAABBBBAAAEEEPAFCG2YCAgggAACCCCAAAIIIIAAAggggEAEBQhtIjgodAkBBBBAAAEEEEAAAQQQQAABBBAgtGEOIIAAAggggAACCCCAAAIIIIAAAhEUILSJ4KDQJQQQQAABBBBAAAEEEEAAAQQQQIDQhjmAAAIIIIAAAggggAACCCCAAAIIRFCA0CaCg0KXEEAAAQQQQAABBBBAAAEEEEAAAUIb5gACCCCAAAIIIIAAAggggAACCCAQQQFCmwgOCl1CAAEEEEAAAQQQQAABBBBAAAEECG2YAwgggAACCCCAAAIIIIAAAggggEAEBQhtIjgodAkBBBBAAAEEEEAAAQQQQAABBBAgtGEOIIAAAggggAACCCCAAAIIIIAAAhEUILSJ4KDQJQQQQAABBBBAAAEEEEAAAQQQQIDQhjmAAAIIIIAAAggggAACCCCAAAIIRFCA0CaCg0KXEEAAAQQQQAABBBBAAAEEEEAAAUIb5gACCCCAAAIIIIAAAggggAACCCAQQQFCmwgOCl1CAAEEEEAAAQQQQAABBBBAAAEECG2YAwgggAACCCCAAAIIIIAAAggggEAEBQhtIjgodAkBBBBAAAEEEEAAAQQQQAABBBAgtGEOIIAAAggggAACCCCAAAIIIIAAAhEUILSJ4KDQJQQQQAABBBBAAAEEEEAAAQQQQIDQhjmAAAIIIIAAAggggAACCCCAAAIIRFCA0CaCg0KXEEAAAQQQQAABBBBAAAEEEEAAAUIb5gACCCCAAAIIIIAAAggggAACCCAQQQFCmwgOCl1CAAEEEEAAAQQQQAABBBBAAAEECG2YAwgggAACCCCAAAIIIIAAAggggEAEBQhtIjgodAkBBBBAAAEEEEAAAQQQQAABBBAgtGEOIIAAAggggAACCCCAAAIIIIAAAhEUILSJ4KDQJQQQQAABBBBAAAEEEEAAAQQQQIDQhjmAAAIIIIAAAggggAACCCCAAAIIRFCA0CaCg0KXEEAAAQQQQAABBBBAAAEEEEAAAUIb5gACCCCAAAIIIIAAAggggAACCCAQQQFCmwgOCl1CAAEEEEAAAQQQQAABBBBAAAEECG2YAwgggAACCCCAAAIIIIAAAggggEAEBQhtIjgodAkBBBBAAAEEEEAAAQQQQAABBBAgtGEOIIAAAggggAACCCCAAAIIIIAAAhEUILSJ4KDQJQQQQAABBBBAAAEEEEAAAQQQQIDQhjmAAAIIIIAAAggggAACCCCAAAIIRFCA0CaCg0KXEEAAAQQQQAABBBBAAAEEEEAAAUIb5gACCCCAAAIIIIAAAggggAACCCAQQQFCmwgOCl1CAAEEEEAAAQQQQAABBBBAAAEECG2YAwgggAACCCCAAAIIIIAAAggggEAEBQhtIjgodAkBBBBAAAEEEEAAAQQQQAABBBAgtGEOIIAAAggggAACCCCAAAIIIIAAAhEUILSJ4KDQJQQQQAABBBBAAAEEEEAAAQQQQIDQhjmAAAIIIIAAAggggAACCCCAAAIIRFCA0CaCg0KXEEAAAQQQQAABBBBAAAEEEEAAAUIb5gACCCCAAAIIIIAAAggggAACCCAQQQFCmwgOCl1CAAEEEEAAAQQQQAABBBBAAAEECG2YAwgggAACCCCAAAIIIIAAAggggEAEBQhtIjgodAkBBBBAAAEEEEAAAQQQQAABBBAgtGEOIIAAAggggAACCCCAAAIIIIAAAhEUILSJ4KDQJQQQQAABBBBAAAEEEEAAAQQQQIDQhjmAAAIIIIAAAggggAACCCCAAAIIRFCA0CaCg0KXEEAAAQQQQAABBBBAAAEEEEAAAUIb5gACCCCAAAIIIIAAAggggAACCCAQQQFCmwgOCl1CAAEEEEAAAQQQQAABBBBAAAEECG2YAwgggAACCCCAAAIIIIAAAggggEAEBQhtIjgodAkBBBBAAAEEEEAAAQQQQAABBBAgtGEOIIAAAggggAACCCCAAAIIIIAAAhEUILSJ4KDQJQQQQAABBBBAAAEEEEAAAQQQQIDQhjmAAAIIIIAAAggggAACCCCAAAIIRFCA0CaCg0KXEEAAAQQQQAABBBBAAAEEEEAAAUIb5gACCCCAAAIIIIAAAggggAACCCAQQQFCmwgOCl1CAAEEEEAA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HOcOP6m+IeyewOcQWNeTNr1PGRMP3jqlZbbzr5gZO3baLvr17vE5VnAJgfoSWFdos7aA+1Z9nQm7rU3gnWUrKu+vaRzcEIccuH9lsrWftFn1n/fikGMbY/4dU2tbzNUENhIBoU2BjXr2xVfivEtujBlTR1dm/fCjj+KAo35deez803cFFLicqQjUpUD2roDsyZvhgxvqcv82TaAWgbVDm+ydNl17DYu5N18YW27xyTttBjReFH17d698c4c/BAj8f4E8oY37llNEIJ9AFtic/NsLKt9y+L8f0b3+1ntjWfPK+M2An1cmemrBizHx8hlxy9Xn5JvYKAIbuYDQpuAG9h0yLoYPaai8wLHp7odjzv2PxrWTRxS8iukI1I9AdmPe69s7R7tNN618e8DA4RfFhWMGx567f6N+EOyUQEECa4c22bTZ32W/WBjQr2flxar9hp5XefJm883aF7SqaQiUV2BdoY37Vnn7bWfrTyALbLJ/42XvLez5k9bfCrW0eWUcN/S8mHXl2ZWvAD9zwjXxjc5fi0HH/3T9FWRmAgkJCG0Kbkb2dXXZSxznPvRY5T+V40acHJ07blfwKqYjUD8CM267L5rufiSyzzd/c6eOcWyv7nHMkd3qB8BOCRQosK7QJnva5pqb5sTMpvtj222+EI2DGqLr9/cqcFVTESivwLpCG/et8vbbztafQPZE2rgpN3xmgewTDPvs+a144aUlMWnqzFjw3KLo/qP9Yszp/WOLDputv4LMTCAhAaFNQs1QCgECBAgQIECAAAECBAgQIEDgUwGhjbNAgAABAgQIECBAgAABAgQIEEhQQGiTYFOURIAAAQIECBAgQIAAAQIECBAQ2jgDBAgQIECAAAECBAgQIECAAIEEBYQ2CTZFSQQIECBAgAABAgQIECBAgAABoY0zQIAAAQIECBAgQIAAAQIECBBIUEBok2BTlESAAAECBAgQIECAAAECBAgQENo4AwQIECBAgAABAgQIECBAgACBBAWENgk2RUkECBAgQIAAAQIECBAgQIAAAaGNM0CAAAECBAgQIECAAAECBAgQSFBAaJNgU5REgAABAgQIECBAgAABAgQIEBDaOAMECBAgQIAAAQIECBAgQIAAgQQFhDYJNkVJBAgQIECAAAECBAgQIECAAAGhjTNAgAABAgQIECBAgAABAgQIEEhQQGiTYFOURIAAAQIECBAgQIAAAQIECBAQ2jgDBAgQIECAAAECBAgQIECAAIEEBYQ2CTZFSQQIECBAgAABAgQIECBAgAABoY0zQIAAAQIECBAgQIAAAQIECBBIUEBok2BTlESAAAECBAgQIECAAAECBAgQENo4AwQIECBAgAABAgQIECBAgACBBAWENgk2RUkECBAgQIAAAQIECBAgQIAAAaGNM0CAAAECBAgQIECAAAECBAgQSFBAaJNgU5REgAABAgQIECBAgAABAgQIEBDaOAMECBAgQIAAAQIECBAgQIAAgQQFhDYJNkVJBAgQIECAAAECBAgQIECAAAGhjTNAgAABAgQIECBAgAABAgQIEEhQQGiTYFOURIAAAQIECBAgQIAAAQIECBAQ2jgDBAgQIECAAAECBAgQIECAAIEEBYQ2CTZFSQQIECBAgAABAgQIECBAgAABoY0zQIAAAQIECBAgQIAAAQIECBBIUEBok2BTlESAAAECBAgQIECAAAECBAgQENo4AwQIECBAgAABAgQIECBAgACBBAWENgk2RUkECBAgQIAAAQIECBAgQIAAAaGNM0CAAAECBAgQIECAAAECBAgQSFBAaJNgU5REgAABAgQIECBAgAABAgQIEBDaOAMECBAgQIAAAQIECBAgQIAAgQQFhDYJNkVJBAgQIECAAAECBAgQIECAAAGhjTNAgAABAgQIECBAgAABAgQIEEhQQGiTYFOURIAAAQIECBAgQIAAAQIECBAQ2jgDBAgQIECAAAECBAgQIECAAIEEBYQ2CTZFSQQIECBAgAABAgQIECBAgAABoY0zQIAAAQIECBAgQIAAAQIECBBIUEBok2BTlESAAAECBAgQIECAAAECBAgQENo4AwQIECBAgAABAgQIECBAgACBBAWENgk2RUkECBAgQIAAAQIECBAgQIAAAaGNM0CAAAECBAgQIECAAAECBAgQSFBAaJNgU5REgAABAgQIECBAgAABAgQIEBDaOAMECBAgQIAAAQIECBAgQIAAgQQFhDYJNkVJBAgQIECAAAECBAgQIECAAAGhjTNAgAABAgQIECBAgAABAgQIEEhQQGiTYFOURIAAAQIECBAgQIAAAQIECBAQ2jgDBAgQIECAAAECBAgQIECAAIEEBYQ2CTZFSQQIECBAgAABAgQIECBAgAABoY0zQIAAAQIECBAgQIAAAQIECBBIUEBok2BTlESAAAECBAgQIECAAAECBAgQENo4AwQIECBAgAABAgQIECBAgACBBAWENgk2RUkECBAgQIAAAQIECBAgQIAAAaGNM0CAAAECBAgQIECAAAECBAgQSFBAaJNgU5REgAABAgQIECBAgAABAgQIEBDaOAMECBAgQIAAAQIECBAgQIAAgQQFhDYJNkVJBAgQIECAAAECBAgQIECAAAGhjTNAgAABAgQIECBAgAABAgQIEEhQQGiTYFOURIAAAQIECBAgQIAAAQIECBAQ2jgDBAgQIECAAAECBAgQIECAAIEEBYQ2CTZFSQQIECBAgAABAgQIECBAgAABoY0zQIAAAQIECBAgQIAAAQIECBBIUEBok2BTlESAAAECBAgQIECAAAECBAgQ+C/GtZiKhcozTQAAAABJRU5ErkJggg==" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n = np.arange(1, 21)\n", "f_n = 2 ** n\n", "g_n = n ** 4\n", "\n", "fig = go.Figure()\n", "\n", "fig.add_trace(go.Scatter(x=n, y=f_n,\n", " mode='lines+markers',\n", " name='$f(n) = 2^n$'))\n", "fig.add_trace(go.Scatter(x=n, y=g_n,\n", " mode='lines+markers',\n", " name='$g(n) = n^4$'))\n", "fig.show()\n" ] }, { "cell_type": "markdown", "id": "9d3bf0dc", "metadata": {}, "source": [ "### Part 3: Big O Classification\n", "\n", "Big O notation is a way to categorize algorithms by their dominant growth rate. We simplify a function to its \"tightest possible\" classification, ignoring constant multipliers and lower-order terms because they become insignificant for large `n`. The formal definition is that $f(n) \\in O(g(n))$ if we can find constants $c$ and $n_0$ such that $f(n) \\leq c \\cdot g(n)$ for all $n \\geq n_0$. There are many, many correct answers to these questions.\n", "\n", "1. **$f(n) = 50n^2 + 200n + 1000$**\n", " * **Big O:** The dominant term (the one that grows fastest) is $50n^2$. The growth rate family is $n^2$, so the classification is **$O(n^2)$**.\n", " * **Justification:** We want to show that $50n^2 + 200n + 1000 \\le c \\cdot n^2$. I choose a $c$ of 51. $51n^2$ eventually dominates $f(n)$ starting at $n_0=205$.\n", "\n", "2. **$f(n) = \\frac{n(n-1)}{2}$**\n", " * **Big O:** If we expand the function, we get $f(n) = \\frac{1}{2}n^2 - \\frac{1}{2}n$. The dominant term is $\\frac{1}{2}n^2$. This falls into the **$O(n^2)$** bucket.\n", " * **Justification:** We want to show $\\frac{1}{2}n^2 - \\frac{1}{2}n \\le c \\cdot n^2$. I choose a $c$ of 1. $n^2$ eventually dominates $f(n)$ starting at $n_0=0$.\n", "\n", "3. **$f(n) = 75 \\log_2(n) + 5n + 2$**\n", " * **Big O:** Comparing the terms, the linear term `5n` grows faster than the logarithmic term `75 log(n)` and the constant `2`. So, the classification is **$O(n)$**.\n", " * **Justification:** We want to show $75 \\log_2(n) + 5n + 2 \\le c \\cdot n$. I choose $c=6$. $6n$ eventually dominates $f(n)$ starting at $n_0=713$.\n", "\n", "4. **$f(n) = 10^6$**\n", " * **Big O:** The value of this function is a large number, but it is constant. It does not change as `n` changes. Therefore, its classification is **$O(1)$**.\n", " * **Justification:** We want to show $10^6 \\le c \\cdot 1$. I choose $c=10^6+1$. $10^6+1>f(n)$ for all $n$, starting at $n_0=0$.\n", "\n", "---\n", "\n", "### Part 4: Conceptual Questions\n", "\n", "1. **Why do we ignore constant factors and lower-order terms?**\n", " Imagine you're planning a cross-country flight. The total time is dominated by the hours spent in the air. The 15 minutes it takes to taxi on the runway (a lower-order term) and whether the plane flies at 550 mph or 560 mph (a constant factor difference) are insignificant to the overall estimate.\n", " Similarly, in algorithm analysis, we focus on how the runtime behaves as the input `n` gets huge. For a massive `n`, the term with the highest power (e.g., $n^2$) grows so much faster than lower-order terms (like `n`) that the lower-order terms contribute almost nothing to the final result. Additionally, the growth term is much more impactful in defining how much work is done for large $n$ than any coefficient. Big O is about capturing this high-level scaling behavior, so we simplify by ignoring the less impactful parts.\n", "\n", "2. **Runtime Estimation:**\n", " * a) **$O(n)$**: The runtime is **linearly proportional** to the input size. If you double the input `n`, you double the runtime.\n", " * Estimated time: $5s \\times \\frac{200}{100} = 5s \\times 2 = \\textbf{10 seconds}$.\n", " * b) **$O(n^2)$**: The runtime is **proportional to the square** of the input size. If you double the input `n`, you multiply the runtime by $2^2 = 4$.\n", " * Estimated time: $5s \\times (\\frac{200}{100})^2 = 5s \\times 4 = \\textbf{20 seconds}$.\n", " * c) **$O(2^n)$**: The runtime grows **exponentially**. The relationship is $T(n) \\approx c \\cdot 2^n$.\n", " * The ratio of runtimes is $\\frac{T(200)}{T(100)} \\approx \\frac{c \\cdot 2^{200}}{c \\cdot 2^{100}} = 2^{100}$.\n", " * Estimated time: $5s \\times 2^{100}$. This is an unimaginably huge number, highlighting that exponential algorithms are not practical for large inputs." ] }, { "cell_type": "markdown", "id": "4141c750", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.5" } }, "nbformat": 4, "nbformat_minor": 5 }