Algorithms in Python – Full Course for Beginners

preview_player
Показать описание
In this Introduction to Algorithms in Python course, you'll learn about algorithm basics like recursion and then go all the way to working with concepts like dynamic programming.

The 5 main course segments include simple recursive algorithms, data structures, divide & conquer, greedy algorithms, and dynamic programming.

⭐️ Code Samples ⭐️

⭐️ Course Contents ⭐️
⌨️ (0:00:00) Intro & course overview
⌨️ (0:07:07) Factorials refresher
⌨️ (0:10:04) CODING CHALLENGE: Factorial program using iteration, recursion
⌨️ (0:14:57) What is a permutation?
⌨️ (0:16:34) CODING CHALLENGE: Recursive permutation
⌨️ (0:20:13) Iterative permutation example
⌨️ (0:22:17) 8/N queens problem: theory & explanation
⌨️ (0:23:57) Real world example of permutations
⌨️ (0:24:49) Lesson recap
⌨️ (0:26:11) What are data structures?
⌨️ (0:27:53) What is a one-dimensional array?
⌨️ (0:29:01) Search & sort
⌨️ (0:30:39) CODING CHALLENGE: Linear search
⌨️ (0:31:00) Binary search
⌨️ (0:32:06) CODING CHALLENGE: Iterative binary search
⌨️ (0:33:31) Coding a recursive binary search
⌨️ (0:34:47) Bubble sort
⌨️ (0:36:42) CODING CHALLENGE: Bubble sort
⌨️ (0:38:02) Insertion sort
⌨️ (0:39:24) CODING CHALLENGE: Insertion sort
⌨️ (0:40:36) Linked lists
⌨️ (0:44:01) CODING CHALLENGE: Linked list (traverse, search, add, delete, header, nodes, tail)
⌨️ (0:52:12) Hash tables
⌨️ (0:56:27) Lesson recap
⌨️ (0:57:42) Divide & conquer algorithm paradigm: uses, benefits and more
⌨️ (1:00:43) Merge sort
⌨️ (1:02:48) CODING CHALLENGE: An efficient merge sort
⌨️ (1:05:48) Getting judged mercilessly on LeetCode
⌨️ (1:06:47) Getting Python to do the work for us with sorted()
⌨️ (1:07:33) Matrix multiplication
⌨️ (1:10:06) CODING CHALLENGE: Matrix multiplication
⌨️ (1:11:20) Strassen algorithm
⌨️ (1:14:45) CODING CHALLENGE: Strassen algorithm
⌨️ (1:16:27) Lesson recap
⌨️ (1:17:21) What is a greedy algorithm?
⌨️ (1:19:20) Assign mice to holes conceptual overview
⌨️ (1:21:45) CODING CHALLENGE: Assign mice to holes
⌨️ (1:23:10) Fractional knapsack
⌨️ (1:23:36) Understanding the fractional knapsack problem with a (light-hearted) dystopian apocalypse example
⌨️ (1:25:54) Coding challenge prep
⌨️ (1:27:13) CODING CHALLENGE: Fractional knapsack
⌨️ (1:31:49) Egyptians fractions
⌨️ (1:34:03) CODING CHALLENGE: Egyptian fractions
⌨️ (1:37:06) Lesson recap
⌨️ (1:38:15) What is dynamic programming (also called DP)?
⌨️ (1:41:55) What is the principle of optimality?
⌨️ (1:42:20) The 3-step process to solving a problem with optimal substructure
⌨️ (1:43:55) Introduction to “ugly numbers”
⌨️ (1:47:19) CODING CHALLENGE: Ugly numbers
⌨️ (1:51:41) Traveling salesman problem (TSP)
⌨️ (1:55:49) CODING CHALLENGE: Traveling salesman problem
⌨️ (1:59:52) Palindromic matrix paths
⌨️ (2:03:11) CODING CHALLENGE: Palindromic matrix paths
⌨️ (2:08:37) Lesson recap
⌨️ (2:10:03) Course wrap up (and the importance of coding every day)

🎉 Thanks to our Champion and Sponsor supporters:
👾 Raymond Odero
👾 Agustín Kussrow
👾 aldo ferretti
👾 Otis Morgan
👾 DeezMaster

--

Рекомендации по теме
Комментарии
Автор

⭐ Course Contents For Mobile Guys
⌨ (0:00:00) Intro & course overview
⌨ (0:07:07) Factorials refresher
⌨ (0:10:04) CODING CHALLENGE: Factorial program using iteration, recursion
⌨ (0:14:57) What is a permutation?
⌨ (0:16:34) CODING CHALLENGE: Recursive permutation
⌨ (0:20:13) Iterative permutation example
⌨ (0:22:17) 8/N queens problem: theory & explanation
⌨ (0:23:57) Real world example of permutations
⌨ (0:24:49) Lesson recap
⌨ (0:26:11) What are data structures?
⌨ (0:27:53) What is a one-dimensional array?
⌨ (0:29:01) Search & sort
⌨ (0:30:39) CODING CHALLENGE: Linear search
⌨ (0:31:00) Binary search
⌨ (0:32:06) CODING CHALLENGE: Iterative binary search
⌨ (0:33:31) Coding a recursive binary search
⌨ (0:34:47) Bubble sort
⌨ (0:36:42) CODING CHALLENGE: Bubble sort
⌨ (0:38:02) Insertion sort
⌨ (0:39:24) CODING CHALLENGE: Insertion sort
⌨ (0:40:36) Linked lists
⌨ (0:44:01) CODING CHALLENGE: Linked list (traverse, search, add, delete, header, nodes, tail)
⌨ (0:52:12) Hash tables
⌨ (0:56:27) Lesson recap
⌨ (0:57:42) Divide & conquer algorithm paradigm: uses, benefits and more
⌨ (1:00:43) Merge sort
⌨ (1:02:48) CODING CHALLENGE: An efficient merge sort
⌨ (1:05:48) Getting judged mercilessly on LeetCode
⌨ (1:06:47) Getting Python to do the work for us with sorted()
⌨ (1:07:33) Matrix multiplication
⌨ (1:10:06) CODING CHALLENGE: Matrix multiplication
⌨ (1:11:20) Strassen algorithm
⌨ (1:14:45) CODING CHALLENGE: Strassen algorithm
⌨ (1:16:27) Lesson recap
⌨ (1:17:21) What is a greedy algorithm?
⌨ (1:19:20) Assign mice to holes conceptual overview
⌨ (1:21:45) CODING CHALLENGE: Assign mice to holes
⌨ (1:23:10) Fractional knapsack
⌨ (1:23:36) Understanding the fractional knapsack problem with a (light-hearted) dystopian apocalypse example
⌨ (1:25:54) Coding challenge prep
⌨ (1:27:13) CODING CHALLENGE: Fractional knapsack
⌨ (1:31:49) Egyptians fractions
⌨ (1:34:03) CODING CHALLENGE: Egyptian fractions
⌨ (1:37:06) Lesson recap
⌨ (1:38:15) What is dynamic programming (also called DP)?
⌨ (1:41:55) What is the principle of optimality?
⌨ (1:42:20) The 3-step process to solving a problem with optimal substructure
⌨ (1:43:55) Introduction to “ugly numbers”
⌨ (1:47:19) CODING CHALLENGE: Ugly numbers
⌨ (1:51:41) Traveling salesman problem (TSP)
⌨ (1:55:49) CODING CHALLENGE: Traveling salesman problem
⌨ (1:59:52) Palindromic matrix paths
⌨ (2:03:11) CODING CHALLENGE: Palindromic matrix paths
⌨ (2:08:37) Lesson recap
⌨ (2:10:03) Course wrap up (and the importance of coding every day)

divineiso
Автор

Perfect, finally a Data Structures/Algorithm course not written in Java. Looking forward to this

CrazyFanaticMan
Автор

pythontutor 13:03 is the website she uses to show each line execute if people are wondering.

JoeMama-zxfx
Автор

Who else took hours and days to actually not just pasively watch a video but implement yourself and understand every single piece of code and algorithm?

LoayAl-Said-jp
Автор

Binary Search: 34:34

def bisection_search(arr, target):
start = 0
end = len(arr) - 1
while start < end:
mid = (start - end) // 2
if arr[mid] == target:
return arr[mid]
if arr[mid] < target:
start +=1
if arr[mid] > target:
end -=1
print(bisection_search([1, 2, 3, 4, 5, 6, 7, 8], 7))

def bisection_search(arr, target, start=0, end=None):
if end is None:
end = len(arr) - 1

if start <= end:
mid = (start + end) // 2
if arr[mid] == target:
return arr[mid]
if arr[mid] < target:
return bisection_search(arr, target, mid+1, end)
if arr[mid] > target:
return bisection_search(arr, target, start, mid-1)
else:
return -1
print(bisection_search([1, 2, 3, 4, 5, 6, 7, 8], 7))

BubbleSort and InsertionSort: 39:27

def bubble(A):
for i in range(len(A)):
for j in range(len(A)-i-1):
if A[j] > A[j+1]:
A[j], A[j+1] = A[j+1], A[j]
return A
print(bubble([9, 5, 3, 26, 1]))

def insertion(A):
for j in range(1, len(A)):
key = A[j]
i = j-1
while i >= 0 and A[i] > key:
A[i+1] = A[i]
i -= 1
A[i+1] = key
return A
print(insertion([5, 2, 1, 9, 6, 4]))

kvelez
Автор

Anyone else notice that the algorithm defined to find all permutations of a string fails for strings with duplicate letters? Condition has to be str[i - 1] >= str[i] vs str[i - 1] > str[i]

luvtil
Автор

I really just wanted this and there were outdated versions of similar courses on YouTube and here it finally is

omaanshkaushal
Автор

Just what I need for my Data Structures class

kiravd
Автор

def is_palindrome(string):
if string == string[::-1]:
return True
else:
return False

can (and in fact should) be written:

def is_palindrome(string):
return string == string[::-1]

dariuszspiewak
Автор

Let's procrastinate by watching this video

jimmytorres
Автор

there's something wrong in 33:45 recursive binary search, if target is not in list it returns "Element is present at index None".
also, . what's the point of having a `mid = start + end - 1 // 2` ? i feel brackets are missing otherwise we are just doing start + end - 0

wallridewallride
Автор

The code for recursive binary search (33:11) has an error. We can either have the ' -1' on line 6 or line 20 but not on both lines.

alexlu
Автор

This is amazing, thank you so much! For anyone about to watch this, ignore the naysayers. Algorithms is one of the hardest topics to describe for beginners in CS but this course has really helped me get over that hurdle!

jonnycoddington
Автор

In the binary search algorithm any integer gives an index eg the first number gives an index 0 so to does any number the that is < the first number in the square braces. Likewise any number > the last number, gives the same index as the last number.

wjwillis
Автор

I've never seen an education video that required me to go slower than 2x to understand where we are. That's a compliment! Succinct, you are.

MyrusEarthWalker
Автор

I love to learn python programming language from this channel bcoz this channel is totally dedicated for everyone who want to learn reall instructors here.come & learn coding.

Techpro
Автор

Thanks a lot for this great course I have already watch it straight to end

theblackelephant
Автор

Thanks for all the effort putten in this video.

eminkilicaslan
Автор

This was a good overview that you've presented in a digestible manner. Now I'm ready to dive into one of the 600+ page books to go deeper into this subject. One big compliment is that you've done well in your self-teaching coding journey. It takes a lot of self-discipline and long-term thinking, both of which are extremely difficult to master. Kudos!

aot
Автор

This content is just Super as I expected.

mirshodoripov