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
0:01
with this algorithm on our own
0:03
but it turns out that many of these techniques
0:06
appear over and over
0:07
and they get applied to all sorts of different problems
0:11
and these I will call formal algorithms.
0:14
For example, the thing that we just did
0:16
is a Binary Search algorithm
0:19
where you start with somewhere
0:20
and then you start breaking it into halves
0:23
and say, Can we exclude half of the data?
0:25
Yes, or can we, make sure we only focus on half of the data
0:29
and start partitioning down.
0:30
And you can go learn all sorts of things about this
0:33
given some amount of data in an unoptimistic case
0:36
we'd have to make as many guesses as possible
0:39
or until there is no other sort of path
0:42
that doesn't allow for another guess.
0:44
It would be this complexity called O(log n)
0:47
which means as you add more data
0:48
10 versus a hundred versus a thousand
0:50
the time it takes to find the answer
0:52
is the log of 10 or a hundred or a thousand
0:55
as a ratio not exactly as a number.
0:58
And the best part is
0:59
maybe you just guess the number straight up
1:00
and that's just, doesn't matter how much data there is
1:02
if you guessed right.
1:03
The point is not to look at this complexity and stuff
1:06
but once you identify one of these formal algorithms
1:09
all of a sudden you can see all the stuff
1:11
that people have studied about it
1:13
you can see, oh, it actually applies in this other case.
1:16
I first thought it was just about guessing
1:18
the number of M&M's in that jar
1:20
but it turns out it also helps me
1:23
optimize this pathfinding algorithm
1:25
or pathfinding program that I am trying to write.
1:27
I don't even know if that's actually true
1:29
but once you know the algorithm
1:31
you then know that it can be applied
1:33
to all these different things.
1:34
So we're not going to go deep into a bunch of algorithms
1:36
because this is not a Computer Science course
1:38
but that's the idea.
1:39
You're going to run into these things
1:41
you're like, Oh, I thought I just made this up.
1:42
But no, it's actually this sort of formal thing
1:44
that was studied
1:45
or somebody might tell you
1:46
Oh, it's this kind of algorithm.
1:49
And then you can go and look it up
1:50
see how to do it in Python
1:51
usually there is a resource for that.
1:53
To these algorithms
1:55
sometimes it's just thinking
1:56
about how my users are logging into my site
1:59
other times they're much more formalized
2:01
like this search algorithm here.