Посоветуйте, пожалуйста, книгу по основным алгоритмам и структурам данных. Установка такая: поменьше математики — побольше практики (по этой причине Кнут категорически не подходит), ну и чтоб понятно было. Ещё обязательное условие — нужны алгоритмы на графах. Желательно с примерами кода (пускай и псевдо).
Здравствуйте, Olegator, Вы писали:
O>Здравствуйте!
O>Посоветуйте, пожалуйста, книгу по основным алгоритмам и структурам данных. Установка такая: поменьше математики — побольше практики (по этой причине Кнут категорически не подходит), ну и чтоб понятно было. Ещё обязательное условие — нужны алгоритмы на графах. Желательно с примерами кода (пускай и псевдо).
O>Пока на примете только Кормен.
Если Кнут не подходит, то по-моему "следующий подходящий" Сэджвик "Фундаментальные алгоритмы на .. , Касьянов, Поттосин "Графы в программировании", Нивергельт "Комбинаторные алгоритмы" и т.д.
А мне еще нравится Thomas H. Cormen, Charles E. Leisersen, Ronald L. Rivest, Clifford Stein, "Introductions to Aglortihms", second edition от MIT Press. Шикарная книжка.
Здравствуйте, sch, Вы писали:
sch>А мне еще нравится Thomas H. Cormen, Charles E. Leisersen, Ronald L. Rivest, Clifford Stein, "Introductions to Aglortihms", second edition от MIT Press. Шикарная книжка.
Она же есть в продаже (по крайней мере недавно выпустили доп.тираж) на русском, на отличная книга! во всем, но тем, кому не нравится Кнут, может тоже не понравится
O>>Посоветуйте, пожалуйста, книгу по основным алгоритмам и структурам данных. Установка такая: поменьше математики — побольше практики (по этой причине Кнут категорически не подходит), ну и чтоб понятно было. Ещё обязательное условие — нужны алгоритмы на графах. Желательно с примерами кода (пускай и псевдо).
O>>Пока на примете только Кормен.
FT>Если Кнут не подходит, то по-моему "следующий подходящий" Сэджвик "Фундаментальные алгоритмы на .. , Касьянов, Поттосин "Графы в программировании", Нивергельт "Комбинаторные алгоритмы" и т.д.
Во всем согласен,
Но предупрежу у книги Касьянова хотя и жесткая картонная обложка, обклееная бумагой ! переплет отвратительный, бумага газетная. Уроды в издательствах, экономят на таких хороших книгах
а книгу Нивергельт "Комбинаторные алгоритмы" нигде никогда не встречал,
хочу ознакомиться с ее сожержимым, можно хотя бы ее оглавление сюда поместить.
O>Посоветуйте, пожалуйста, книгу по основным алгоритмам и структурам данных. Установка такая: поменьше математики — побольше практики (по этой причине Кнут категорически не подходит), ну и чтоб понятно было. Ещё обязательное условие — нужны алгоритмы на графах. Желательно с примерами кода (пускай и псевдо).
Steven S. Skiena
Algorithm Design Manual
Находится в Гугле.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Здравствуйте, sch, Вы писали:
sch>А мне еще нравится Thomas H. Cormen, Charles E. Leisersen, Ronald L. Rivest, Clifford Stein, "Introductions to Aglortihms", second edition от MIT Press. Шикарная книжка.
Здравствуйте, Olegator, Вы писали:
O>Здравствуйте, FoolS.Top, Вы писали:
FT>>Если Кнут не подходит, то по-моему "следующий подходящий" Сэджвик "Фундаментальные алгоритмы на ..
O>Заинтересовало! А можно кусок кода оттуда (например, Дейкстру), чтобы оценить.
Сейчас под рукой нет, завтра напишу. И кстати где-нибудь есть эл. вариант Кормена?
Здравствуйте, Olegator, Вы писали:
O>Здравствуйте!
O>Посоветуйте, пожалуйста, книгу по основным алгоритмам и структурам данных. Установка такая: поменьше математики — побольше практики (по этой причине Кнут категорически не подходит), ну и чтоб понятно было. Ещё обязательное условие — нужны алгоритмы на графах. Желательно с примерами кода (пускай и псевдо).
O>Пока на примете только Кормен.
Здравствуйте, Olegator, Вы писали:
O>Здравствуйте, FoolS.Top, Вы писали:
FT>>Если Кнут не подходит, то по-моему "следующий подходящий" Сэджвик "Фундаментальные алгоритмы на ..
O>И ещё один вопрос: чем "...на C" принципиально отличается от "...на C++"?
Честно говоря "..на C" я не смотрел. Есть еще "..на Java". Думаю, что содержательно они совпадают.
Здравствуйте, FoolS.Top, Вы писали:
FT>Здравствуйте, Olegator, Вы писали:
O>>Здравствуйте, FoolS.Top, Вы писали:
FT>>>Если Кнут не подходит, то по-моему "следующий подходящий" Сэджвик "Фундаментальные алгоритмы на ..
O>>Заинтересовало! А можно кусок кода оттуда (например, Дейкстру), чтобы оценить.
FT>Сейчас под рукой нет, завтра напишу. И кстати где-нибудь есть эл. вариант Кормена?
Роберт Седжвик
Фундаментальные алгоритмы на C++
Часть 5 Алгоритмы на графах
стр. 294
// SPT, shortest-paths treetemplate <class Graph, class Edge> class SPT
{
const Graph &G;
vector<double> wt;
vector<Edge*> spt;
public:
SPT(const Graph &G, int s) : G(G), spt(G.V()), wt(G.V(), G.V())
{
PQi<double> pQ(G.V(), wt);
for (int v = 0; v < G.V(); v++) pQ.insert(v);
wt[s] = 0.0; pQlower(s);
while (!pQ.empty())
{
int v = pQ.getmin();
if (v != s && spt[v] == 0) return;
typename Graph::adjIterator A(G, v);
for (Edge* e = A.beg(); !A.end(); e = A.nxt())
{
int w = e->w();
double P = wt[v] + e->wt();
if (P < wt[w])
{ wt[w] = P; pQ.lower(w); spt[w] = e }
}
}
}
Edge *pathR(int v) const {return spt[v]}
double dist (int v) const {return wt[v]}
};
Здравствуйте, Olegator, Вы писали:
O>Здравствуйте, FoolS.Top, Вы писали:
FT>>Сейчас под рукой нет, завтра напишу. И кстати где-нибудь есть эл. вариант Кормена?
O>Да, есть. Даже есть на русском, только без картинок. Всё это лежит в p2p сетях. Если хотите, вышлю на мыло (3,63 МБ).