Now, there's zillions and zillions of algorithms in the world, and

anybody can write one of them down.

So if someone proposes an algorithm to you,

the onus is on them to convince you that it's a good idea,

to convince you that it's, in some sense, a good algorithm.

Conotically, in these courses, I've been making that argument in two ways.

First of all, I provide you with an argument that the algorithm I proposed

is correct.

It always is guaranteed to solve the problem that we're interested in.

Secondly, I argued that it solves the problem using a reasonable amount of

resources.

So one great exhibit A would be, say, Dijkstra's algorithm.

We wanted to solve the shortest path problem with a single source and

non-negative edge ones.

I gave you a proof that Dijkstra's algorithm always successfully achieves

that goal, and I showed you an implementation so

that the running time was not much more than what it takes to just read the input.