Video Notes Contents
0:25 -What Is an Algorithm?
6:50 - Guess the Number
12:46 - Defining an Algorithm
21:15 - Evaluating Linear Search
29:58 - Evaluating Binary Search
36:11 - Efficiency of an Algorithm
42:39 - Constant and Logarithmic Time
49:11 - Linear & Quadratic Time
53:48 - Quasilinear Time
56:23 - Exponential Time
1:04:23 - Determining Complexity
1:08:22 - Linear Search in Code
1:18:02 - Binary Search in Code
1:28:06 - Recursive Binary Search
1:41:14 - Recursive Functions
1:46:18 - Space Complexity
1:53:07 - Recap of Algorithms in Code
1:57:44 - Introduction
2:00:40 - Array Basics
2:06:20 - Accessing a Value in an Array
2:13:06 - Array Search, Insert and Delete
2:22:57 - What Is a Linked List?
2:36:15 - Adding Nodes to a Linked List
2:44:05 - Implementing Search
2:48:34 - Inserting a Node
2:55:20 - Removing a Node
3:03:06 - Merge Sort
3:11:13 - Splitting Into Sublists
3:14:27 - Recursively Merging Sublists
3:21:34 - Ensuring the Correctness of Merge Sort
3:28:17 - Evaluating the Runtime of Merge Sort
3:35:40 - The Merge Function
3:40:31 - The Divide Step
3:47:56 - The Conquer Step
4:00:11 - Evaluating the Runtime
4:08:46 - Recap of Introduction to Data Structures
4:11:02 - Sorting and Searching
4:14:56 - Bogo-Sort
4:20:36 - Selection Sort
4:27:11 - Getting the Run Time of a Program
4:31:17 - Recursion
4:41:18 - Quicksort
4:47:12 - Implementing Quicksort
4:52:34 - Merge Sort
4:59:45 - Actual Run Time for Sorting Algorithms
5:02:00 - Big-O Run Times of Sorting Algorithms
5:07:42 - Linear Search
5:12:04 - Sorting Names
5:14:04 - Binary Search
5:19:22 - Timing Our Search Scripts
5:20:41 - Big O Runtime of Search Algorithms
A set of steps or instructions for completing a task. (e.g. road directions, food recipes, or even a wake-up routine are all algorithms)
A teacher has a maze on the board, and asks 3 students for their quickest solutions to solve the maze, each solution to the problem is it's own viable algorithm for solving the path (the steps one needs to take) to the maze however, some may have better ideas than others.
An algorithm is a solution to a problem that has been solved, as a result of potentially not being aware that the solution exists, then it may be sought out however, it can be definitely said that it may not be to the same level of efficiency as the most adapted algorithmic solution that has been thoroughly reviewed.
It is not just understanding an algorithm exists, but when to apply it, which requires understanding the problem at hand which is a priority of algorithms & data structures.
It is important to decompose (break it down step-by-step) and analyse the effective algorithm or data structure to utilise in the instance it is needed for the task at hand.
Greater level of efficiency and complexity understanding in programming.
Algorithmic thinking comes up in job applications, as a way to identify to employers that the candidate can perform decomposition and break down a problem into its components and assess the individual components of the given problem.
[[Video Notes Template V1]]