Алгоритмы / Описание алгоритмов — вместо псевдокода, лучше Python

Псевдокод имеет множество недостатков. Самым главным недостатком, является то, что он псевдо.
Посмотрите, например, реализацию на Python известного алгоритма Дейкстры.

01 def Dijkstra(graph, v0):
02   distance = dict(((v, float('inf')) for v in graph.iterkeys()))
03   distance[v0] = 0
04   vertex = set(graph.iterkeys())
05   while vertex:
06     d1, v1 = min(((distance[v], v) for v in vertex))
07     vertex.remove(v1)
08     for v, d in graph[v1].iteritems():
09       if distance[v] > distance[v1] + d:
10         distance[v] = distance[v1] + d
11   return distance

Я не буду описывать достоинства и недостатки каждого из подходов. Я просто покажу, как это выглядит на Python. Все познается в сравнении.

Рубрика: Habr