<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cs-Theory on The VikiD Truth</title><link>https://thevikidtruth.com/computing/category/cs-theory/</link><description>Recent content in Cs-Theory on The VikiD Truth</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 22 Oct 2026 10:30:00 +0400</lastBuildDate><atom:link href="https://thevikidtruth.com/computing/category/cs-theory/index.xml" rel="self" type="application/rss+xml"/><item><title>Algorithms</title><link>https://thevikidtruth.com/computing/algorithms/</link><pubDate>Mon, 08 May 2017 05:00:32 +0400</pubDate><guid>https://thevikidtruth.com/computing/algorithms/</guid><description>&lt;p&gt;&lt;a href="https://thevikidtruth.com/computing/algorithms/"&gt;Algorithms&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/apple/"&gt;Apple&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/assemblylanguage/"&gt;AssemblyLanguage&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;BASH&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/vikidsbashcookbook/"&gt;Bash Cookbook&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/cprogramming/"&gt;C-Programmming&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/commonlisp/"&gt;CommonLisp&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/computersecurity/"&gt;Computer Security&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/cuissmalltalk/"&gt;CuisSmalltalk&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/databases/"&gt;Databases&lt;/a&gt; | &lt;span class="missing-link"&gt;Emacs&lt;/span&gt; | &lt;span class="missing-link"&gt;Exploitation&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/firewalls/"&gt;Firewalls&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/fortran/"&gt;Fortran&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/functional/"&gt;Functional Programming&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/git/"&gt;Git&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/gnusmalltalk/"&gt;GNUSmalltalk&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/haskell/"&gt;Haskell&lt;/a&gt; | &lt;span class="missing-link"&gt;Social Engineering&lt;/span&gt; | &lt;span class="missing-link"&gt;Javascript&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/julia/"&gt;Julia&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;Linux&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/machinelearning/"&gt;Machine Learning&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/metasploit/"&gt;Metasploit&lt;/a&gt; |&lt;a href="https://thevikidtruth.com/computing/machinelearning/"&gt;Machine Learning&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/networking/"&gt;Networking&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/os/"&gt;Operating Systems&lt;/a&gt; | &lt;span class="missing-link"&gt;Open Data Science&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/odin/"&gt;Odin&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/picolisp/"&gt;Picolisp&lt;/a&gt; | &lt;span class="missing-link"&gt;Pharo Smalltalk&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/purescript/"&gt;Purescript&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/python/"&gt;Python&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/racket/"&gt;Racket&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/scheme/"&gt;Scheme&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;Unity&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/vim/"&gt;vim&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/vlang/"&gt;V&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/webdevelopment/"&gt;Web Development&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/windowswsl/"&gt;Windows WSL&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/ziglang/"&gt;Zig&lt;/a&gt;&lt;/p&gt;&#10;&lt;h1 id="algorithms"&gt;Algorithms&lt;/h1&gt;&#10;&lt;h2 id="algorithms-1"&gt;Algorithms&lt;/h2&gt;&#10;&lt;p&gt;Here is the truth about algorithms: &lt;strong&gt;they are recipes, and the interesting question is not &amp;ldquo;does it work?&amp;rdquo; but &amp;ldquo;how does the cost grow when the input gets bigger?&amp;rdquo;&lt;/strong&gt; Once you start seeing growth rates, a lot of software design stops being guesswork.&lt;/p&gt;</description></item><item><title>Machine Learning</title><link>https://thevikidtruth.com/computing/machinelearning/</link><pubDate>Thu, 01 Dec 2016 22:59:57 +0400</pubDate><guid>https://thevikidtruth.com/computing/machinelearning/</guid><description>&lt;p&gt;&lt;a href="https://thevikidtruth.com/about/caveatemptor/"&gt;Read This!&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;Computing&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/picolisp/"&gt;Picolisp&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/pilmachine/"&gt;Picolisp Machine&lt;/a&gt; | &lt;span class="missing-link"&gt;Pil Sources&lt;/span&gt; |&#10;&lt;span class="missing-link"&gt;Linux&lt;/span&gt; | &lt;span class="missing-link"&gt;BASH&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/cprogramming/"&gt;C-Programmming&lt;/a&gt; | &lt;span class="missing-link"&gt;Javascipt&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/python/"&gt;Python&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/scheme/"&gt;Scheme&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/os/"&gt;Operating Systems&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/assemblylanguage/"&gt;AssemblyLanguage&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/computersecurity/"&gt;Computer Security&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/firewalls/"&gt;Firewalls&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;Exploitation&lt;/span&gt; | &lt;span class="missing-link"&gt;Social Engineering&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/metasploit/"&gt;Metasploit&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;Emacs&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/vim/"&gt;vim&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;Pharo Smalltalk&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/databases/"&gt;Databases&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/networking/"&gt;Networking&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/machinelearning/"&gt;Machine Learning&lt;/a&gt;&lt;/p&gt;&#10;&lt;h1 id="machine-learning"&gt;Machine Learning&lt;/h1&gt;&#10;&lt;h4 id="machine-learning-in-a-nutshell"&gt;Machine learning in a Nutshell:&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;: Raw Environment&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Model&lt;/strong&gt;: Maps input &amp;ndash;&amp;gt; Output&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Learning&lt;/strong&gt;: Optimizes Models by finding better parameters to models (patterns).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Predictor&lt;/strong&gt;: A MLA that is a system that makes predictions&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;We Represent Data as Vectors&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Choose a Model&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Optimize using numerical methods&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="the-mathematics-needed"&gt;The mathematics needed:&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Linear Algebra&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Systems of Equations&#10;&lt;ul&gt;&#10;&lt;li&gt;Matrices&lt;/li&gt;&#10;&lt;li&gt;Vector Spaces&lt;/li&gt;&#10;&lt;li&gt;Linear Mappings&lt;/li&gt;&#10;&lt;li&gt;Affine Spaces&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Analytic Geometry&lt;/li&gt;&#10;&lt;li&gt;Matrix Decomposition&lt;/li&gt;&#10;&lt;li&gt;Vector Calculus&lt;/li&gt;&#10;&lt;li&gt;Probability Distributions&lt;/li&gt;&#10;&lt;li&gt;Continuous Optimisation&lt;/li&gt;&#10;&lt;li&gt;Models vs Data&lt;/li&gt;&#10;&lt;li&gt;Linear Regression&lt;/li&gt;&#10;&lt;li&gt;Dimensionality&lt;/li&gt;&#10;&lt;li&gt;Principal Component Analysis&lt;/li&gt;&#10;&lt;li&gt;Density Estimation (Gaussian Mixture Models&lt;/li&gt;&#10;&lt;li&gt;Classification with Support Vector Machines&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="sources-links-and-reading-lists"&gt;Sources, Links and Reading Lists&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="http://themlbook.com/wiki/doku.php" rel="noopener"&gt;The 100pg ML Book&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://thevikidtruth.com/computing/python/"&gt;Python&lt;/a&gt; &amp;mdash; &lt;a href="https://thevikidtruth.com/computing/scipy/"&gt;SciPy&lt;/a&gt; &amp;mdash; &lt;a href="https://thevikidtruth.com/computing/numpy/"&gt;NumPy&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://www.twotoreal.com/u/wr/4/building-machine-learning-systems-in-python/" rel="noopener"&gt; building-machine-learning-systems-in-python&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://metaoptimize.com" rel="noopener"&gt;Metaoptimize&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://stats.stackexchange.com" rel="noopener"&gt;Stack Exchange&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://www.twotoreal.com" rel="noopener"&gt;Two To Real&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://PacktPub.com" rel="noopener"&gt;PacktPub&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://aiprobook.com/numerical-linear-algebra-for-programmers/" rel="noopener"&gt;(Numerical Linear Algebra for Programmers | New Book Chapter Available)&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=dPWYUELwIdM" rel="noopener"&gt;How Neural Networks Work: 3h50min&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=EuBBz3bI-aA" rel="noopener"&gt;Machine Learning Fundamentals: Bias and Variance&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.w3schools.com/ai/ai_javascript.asp" rel="noopener"&gt;machine learning and javascript - w3schools&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://machinelearningjs.com" rel="noopener"&gt;machinelearningjs&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Databases</title><link>https://thevikidtruth.com/computing/databases/</link><pubDate>Wed, 30 Nov 2016 07:56:19 +0400</pubDate><guid>https://thevikidtruth.com/computing/databases/</guid><description>&lt;p&gt;&lt;a href="https://thevikidtruth.com/about/caveatemptor/"&gt;Read This!&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/picolisp/"&gt;Picolisp&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/pilmachine/"&gt;Picolisp Machine&lt;/a&gt; | &lt;span class="missing-link"&gt;Pil Sources&lt;/span&gt; |&#10;&lt;span class="missing-link"&gt;Linux&lt;/span&gt; | &lt;span class="missing-link"&gt;BASH&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/cprogramming/"&gt;C-Programmming&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/databases/"&gt;Databases&lt;/a&gt; | &lt;span class="missing-link"&gt;Javascipt&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/python/"&gt;Python&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/os/"&gt;Operating Systems&lt;/a&gt; | &lt;a href="https://thevikidtruth.com/computing/assemblylanguage/"&gt;AssemblyLanguage&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/computersecurity/"&gt;Computer Security&lt;/a&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/firewalls/"&gt;Firewalls&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;Exploitation&lt;/span&gt; | &lt;span class="missing-link"&gt;Social Engineering&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/metasploit/"&gt;Metasploit&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;Emacs&lt;/span&gt; | &lt;a href="https://thevikidtruth.com/computing/vim/"&gt;vim&lt;/a&gt; |&#10;&lt;span class="missing-link"&gt;Pharo Smalltalk&lt;/span&gt; |&#10;&lt;a href="https://thevikidtruth.com/computing/pildb/"&gt;Picolisp DB&amp;rsquo;s&lt;/a&gt;&lt;/p&gt;&#10;&lt;h1 id="databases"&gt;Databases&lt;/h1&gt;&#10;&lt;p&gt;Here is the truth about databases: &lt;strong&gt;persistence is hard, and &amp;ldquo;just write it to a file&amp;rdquo; becomes a nightmare the moment two writers, a crash or a query show up.&lt;/strong&gt; A database is the carefully engineered answer to those three problems.&lt;/p&gt;</description></item><item><title>Data Structures and Alogrithms</title><link>https://thevikidtruth.com/computing/datastructuresandalgorithms/</link><pubDate>Tue, 29 Nov 2016 00:16:23 +0400</pubDate><guid>https://thevikidtruth.com/computing/datastructuresandalgorithms/</guid><description>&lt;p&gt;&lt;a href="https://thevikidtruth.com/about/caveatemptor/"&gt;Important Caveat Emptor!&lt;/a&gt;&lt;/p&gt;&#10;&lt;h1 id="data-structures-and-alogrithms"&gt;Data Structures and Alogrithms&lt;/h1&gt;&#10;&lt;p&gt;Here is the truth about data structures and algorithms: &lt;strong&gt;a data structure is a bet about which questions you&amp;rsquo;ll ask most, and an algorithm is how you answer them.&lt;/strong&gt; Pick the wrong bet and even brilliant code crawls.&lt;/p&gt;&#10;&lt;h3 id="what-it-is-in-plain-words"&gt;What it is, in plain words&lt;/h3&gt;&#10;&lt;p&gt;This page sits beside &lt;a href="https://thevikidtruth.com/computing/algorithms/"&gt;Algorithms&lt;/a&gt; as a more structure-focused map. The classic cast:&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Structure&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Good at&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Weak at&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Array / slice&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Index access &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;&lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;O(1)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class="katex-html" aria-hidden="true"&gt;&lt;span class="katex-base"&gt;&lt;span class="katex-strut" style="height:1em;vertical-align:-0.25em;"&gt;&lt;/span&gt;&lt;span class="mord mathnormal" style="margin-right:0.0278em;"&gt;O&lt;/span&gt;&lt;span class="mopen"&gt;(&lt;/span&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;span class="mclose"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Insert at front&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Dynamic array (Vec, list)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Amortised append&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Mid inserts&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Linked list&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Splice if you have a pointer&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Random access&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Stack / queue&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;LIFO / FIFO patterns&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Search&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Hash table&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Lookup/insert average &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;&lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;O(1)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class="katex-html" aria-hidden="true"&gt;&lt;span class="katex-base"&gt;&lt;span class="katex-strut" style="height:1em;vertical-align:-0.25em;"&gt;&lt;/span&gt;&lt;span class="mord mathnormal" style="margin-right:0.0278em;"&gt;O&lt;/span&gt;&lt;span class="mopen"&gt;(&lt;/span&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;span class="mclose"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Range queries, ordering&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;BST / tree map&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Ordered ops &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;&lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;semantics&gt;&lt;mrow&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;log&lt;/mi&gt;&lt;mo&gt;⁡&lt;/mo&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;annotation encoding="application/x-tex"&gt;O(\log n)&lt;/annotation&gt;&lt;/semantics&gt;&lt;/math&gt;&lt;/span&gt;&lt;span class="katex-html" aria-hidden="true"&gt;&lt;span class="katex-base"&gt;&lt;span class="katex-strut" style="height:1em;vertical-align:-0.25em;"&gt;&lt;/span&gt;&lt;span class="mord mathnormal" style="margin-right:0.0278em;"&gt;O&lt;/span&gt;&lt;span class="mopen"&gt;(&lt;/span&gt;&lt;span class="mop"&gt;lo&lt;span style="margin-right:0.0139em;"&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace" style="margin-right:0.1667em;"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;n&lt;/span&gt;&lt;span class="mclose"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cache locality vs hash&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Heap&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Min/max repeatedly&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Arbitrary delete&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Graph (adj list)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Sparse relations&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Dense matrix ops&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Trie&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Prefix search&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Memory use&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="why-it-matters"&gt;Why it matters&lt;/h3&gt;&#10;&lt;p&gt;Databases, compilers, games, routers and ML frameworks are data-structure museums. When a feature is slow, the fix is often &amp;ldquo;wrong structure&amp;rdquo; rather than &amp;ldquo;buy a bigger CPU&amp;rdquo;. See also big-O notes on the &lt;a href="https://thevikidtruth.com/computing/algorithms/"&gt;Algorithms&lt;/a&gt; page.&lt;/p&gt;</description></item><item><title>Computer Science and Theory</title><link>https://thevikidtruth.com/computing/computerscience/</link><pubDate>Tue, 29 Nov 2016 00:14:23 +0400</pubDate><guid>https://thevikidtruth.com/computing/computerscience/</guid><description>&lt;p&gt;&lt;a href="https://thevikidtruth.com/about/caveatemptor/"&gt;Important Caveat Emptor!&lt;/a&gt;&lt;/p&gt;&#10;&lt;h1 id="computer-science-and-theory"&gt;Computer Science and Theory&lt;/h1&gt;&#10;&lt;p&gt;Here is the truth about computer science: &lt;strong&gt;it is not the study of computers any more than astronomy is the study of telescopes.&lt;/strong&gt; It is the study of &lt;em&gt;processes&lt;/em&gt; – what can be computed, how fast, how reliably, and how we express those processes so others (and machines) can carry them out.&lt;/p&gt;&#10;&lt;h3 id="what-it-is-in-plain-words"&gt;What it is, in plain words&lt;/h3&gt;&#10;&lt;p&gt;&lt;strong&gt;Computer science (CS)&lt;/strong&gt; is the body of ideas that underpins programming, systems and computation itself. A useful map of the territory:&lt;/p&gt;</description></item></channel></rss>