Python for Absolute Beginners Transcripts
Chapter: The big ideas of software development
Lecture: Formal algorithms
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
We could have easily come up with this algorithm on our own but it turns out that many of these techniques appear over and over
0:08
and they get applied to all sorts of different problems and these I will call formal algorithms. For example, the thing that we just did
0:17
is a Binary Search algorithm where you start with somewhere and then you start breaking it into halves and say, Can we exclude half of the data?
0:26
Yes, or can we, make sure we only focus on half of the data and start partitioning down. And you can go learn all sorts of things about this
0:34
given some amount of data in an unoptimistic case we'd have to make as many guesses as possible or until there is no other sort of path
0:43
that doesn't allow for another guess. It would be this complexity called O(log n) which means as you add more data
0:49
10 versus a hundred versus a thousand the time it takes to find the answer is the log of 10 or a hundred or a thousand
0:56
as a ratio not exactly as a number. And the best part is maybe you just guess the number straight up
1:01
and that's just, doesn't matter how much data there is if you guessed right. The point is not to look at this complexity and stuff
1:07
but once you identify one of these formal algorithms all of a sudden you can see all the stuff that people have studied about it
1:14
you can see, oh, it actually applies in this other case. I first thought it was just about guessing the number of M&M's in that jar
1:21
but it turns out it also helps me optimize this pathfinding algorithm or pathfinding program that I am trying to write.
1:28
I don't even know if that's actually true but once you know the algorithm you then know that it can be applied to all these different things.
1:35
So we're not going to go deep into a bunch of algorithms because this is not a Computer Science course but that's the idea.
1:40
You're going to run into these things you're like, Oh, I thought I just made this up. But no, it's actually this sort of formal thing that was studied
1:46
or somebody might tell you Oh, it's this kind of algorithm. And then you can go and look it up see how to do it in Python
1:52
usually there is a resource for that. To these algorithms sometimes it's just thinking about how my users are logging into my site
2:00
other times they're much more formalized like this search algorithm here.