Книгата “Програмиране = ++Алгоритми;” с нов уеб сайт + безплатно в PDF вариант
Книгата “Програмиране = ++Алгоритми;” на Преслав Наков и Панайот Добриков, сочена от мнозина като “библията на състезателите по програмиране” има нов уеб сайт:
www.programirane.org
Книгата би могла да се ползва като продължение на книгите “Въведение в програмирането със C#” и “Въведение в програмирането с Java” и като допълнение към учебния план от безплатните курсове по програмиране за начинаещи, провеждани в Академията на Телерик, тъй като запознава читателя с по-сложни алгоритмични проблеми, често използвани по олимпиадите и състезанията по програмиране. Книгата може да бъде изтеглена безплатно в PDF формат.
Следва съкратено съдържание на обхванатия в книгата учебен материал:
Глава 1. Въведение в Алгоритмите
- Основни математически понятия
 - Намиране броя на цифрите на произведение
 - Прости числа, мерсенови и съвършени числа
 - Биномни коефициенти, триъгълник на Паскал. Факторизация
 - Бройни системи и преобразуване, римски цифри
 - Рекурсия и итерация: факториел, редица на Фибоначи
 - Най-голям общ делител, алгоритъм на Евклид, най-малко общо кратно
 - Връщане от рекурсията и използване на променливите
 - Основни комбинаторни алгоритми: пермутации, вариации, комбинации
 - Разбиване на числа
 - Разбиване на множества
 - Оценка и сложност на алгоритми
 - Асимптотична нотация: O(n), W(n), Ɵ(n)
 - Определяне на сложност на алгоритъм
 
Глава 2. Въведение в структурите от данни
- Списък, стек, опашка
 - Последователна (статична) реализация
 - Свързана (динамична) реализация
 - Двоични дървета
 - Балансирани дървета
 - Ротация
 - Червено-черни дървета
 - B-дървета
 - Хеш-таблици
 - Класически хеш-функции
 - Справяне с колизии
 - Затворено хеширане
 - Отворено хеширане
 - Реализации на хеш-таблица
 
Глава 3. Сортиране
- Сортиране чрез сравнение
 - Дърво на сравненията
 - Сортиране чрез вмъкване
 - Сортиране чрез вмъкване с намаляваща стъпка. Алгоритъм на Шел
 - Метод на мехурчето
 - Сортиране чрез клатене
 - Бързо сортиране на Хоор (Quicksort)
 - Метод на “зайците и костенурките”
 - Сортиране чрез пряк избор
 - Пирамидално сортиране на Уилямс
 - Минимална времева сложност на сортирането чрез сравнение
 - Сортиране чрез трансформация
 - Сортиране чрез множество
 - Сортиране чрез броене
 - Побитово сортиране
 - Метод на бройните системи
 - Сортиране чрез пермутация
 - Паралелно сортиране
 
Глава 4. Търсене
- Последователно търсене
 - Последователно търсене в сортиран списък
 - Последователно търсене с преподреждане
 - Търсене със стъпка. Квадратично търсене
 - Двоично търсене
 - Фибоначиево търсене
 - Интерполационно търсене
 
Глава 5. Теория на графите
- Графи – основни понятия
 - Представяне и прости операции с граф: списък на ребрата, матрица на съседство, матрица на теглата, списък на наследниците (списък на инцидентност), матрица на инцидентност между върхове и ребра
 - Компоненти на свързаност
 - Построяване и прости операции с графи
 - Обхождане на граф: обхождане в ширина, обхождане в дълбочина
 - Оптимални пътища, цикли и потоци в граф
 - Директни приложения на алгоритмите за обхождане
 - Екстремален път в граф
 - Цикли
 - Хамилтонови цикли. Задача за търговския пътник
 - Ойлерови цикли
 - Потоци
 - Транзитивност и построяване. Топологично сортиране
 - Транзитивно затваряне. Алгоритъм на Уоршал
 - Транзитивно ориентиране
 - Транзитивна редукция
 - Топологично сортиране
 - Пълно топологично сортиране
 - Допълване на ацикличен граф до слабо свързан
 - Построяване на граф по дадени степени на върховете
 - Достижимост и свързаност
 - Компоненти на свързаност
 - Компоненти на силна свързаност в ориентиран граф
 - Разделящи точки в неориентиран граф. Двусвързаност
 - k-свързаност на неориентиран граф
 - Оптимални подмножества и центрове
 - Минимално покриващо дърво
 - Независими множества
 - Доминиращи множества
 - База на граф
 - Център, радиус и диаметър
 - Двойкосъчетание. Максимално двойкосъчетание
 - Оцветявания и планарност
 - Оцветяване на граф. Хроматично число
 - Планарност на графи
 
Глава 6. Търсене с връщане. NP-пълни задачи
- Класификация на задачите: сложност по време, сложност по памет, нерешими задачи, NP-пълни задачи
 - Търсене с връщане
 - Удовлетворимост на булева функция
 - Оцветяване на граф
 - Най-дълъг прост път в цикличен граф
 - Разходка на коня
 - Задача за осемте царици
 - Разписание на училищна програма
 - Побуквено превеждане
 - Метод на разклоненията и границите
 - Задача за раницата (оптимална селекция)
 - Оптимални стратегии при игри
 - Игра “X”-чета и “O”
 - Принцип на минимума и максимума, алфа-бета отсичане, алфа-бета изследване до определена дълбочина
 
Глава 7. Разделяй и владей
- Намиране на k-ия по големина елемент
 - Мажорант
 - Сливане на сортирани масиви
 - Сортиране чрез сливане
 - Бързо повдигане в степен
 - Алгоритъм на Щрасен за бързо умножение на матрици
 - Бързо умножение на дълги числа
 - Задача за Ханойските кули
 - Организиране на първенства
 - Циклично изместване на елементите на масив
 - Покриване с шаблон
 
Глава 8. Динамично оптимиране
- Динамично оптимиране – въведение
 - Класически оптимизационни задачи
 - Задача за раницата
 - Братска подялба
 - Умножение на матрици
 - Триангулация на многоъгълник. Числа на Каталан
 - Оптимално двоично дърво за претърсване
 - Най-дълга обща подредица
 - Най-дълга ненамаляваща подредица
 - Сравнение на символни низове
 - Задача за разделянето
 - Неоптимизационни задачи
 - Числа на Фибоначи
 - Биномни коефициенти
 - Спортни срещи
 - Представяне на сума с неограничен брой монети
 - Представяне на сума с ограничен брой монети
 - Разбиване на естествено число
 - Числа без две съседни нули
 - Разпознаване на контекстно свободен език
 - Хедонийски език
 - Символно умножение
 - Други интересни оптимизационни задачи
 - Такси компания
 - Билети за влак
 - Числов триъгълник
 - Представяне на сума с минимален брой монети
 - Опроводяване на платка
 - На опашка за билети
 - Разпределение на ресурси
 - Семинарна зала
 - Крайпътни дървета
 - Разрязване на материали
 - Зациклен израз
 - Домино-редица
 - Трионообразна редица
 
Глава 9. Евристични и вероятностни алгоритми
- Алчни алгоритми
 - Египетски дроби
 - Максимално съчетание на дейности
 - Минимално оцветяване на граф и дърво
 - Алгоритми на Прим и Крускал
 - Дробна задача за раницата
 - Задача за магнитната лента
 - Процесорно разписание
 - Разходката на коня. Хиперкуб. Код на Грей
 - Търсене с налучкване
 - Алгоритми Монте Карло и Лас Вегас
 - Числени алгоритми с приближение
 - Генетични алгоритми
 - Достигане на фиксирано приближение
 - Върхово покритие на граф
 
Глава 10. Компресиране
- Кодиране
 - Обща класификация
 - Кодиране на последователности
 - Премахване на нулите
 - Компресиране с битови карти
 - Полубайтово пакетиране
 - Съвместно използване на битови карти и полубайтово пакетиране
 - Двуатомно кодиране
 - Замяна на шаблони
 - Относително кодиране
 - Математическо очакване. Кодиране с линейно предсказване
 - Кодиране на последователности
 - Един представителен пример: PackBits
 - Статистически методи
 - Алгоритъм на Шенън-Фано
 - Алгоритъм на Хъфман
 - Обобщен алгоритъм на Хъфман
 - Kод с разделители
 - Аритметично кодиране
 - Адаптивно компресиране
 - Адаптивно компресиране по Хъфман
 - Модели на Марков
 - Един представителен пример: MNP-5
 - Речниково кодиране
 - Ентропия
 - Стандарти и патенти
 - Статични срещу адаптивни методи
 - LZ77. Компресиране с плъзгащ се прозорец
 - LZSS. Едно подобрение
 - FLZ. Друг вариант на LZ77
 - LZW. Модификацията на Уелч
 - GIF. Гледната точка на CompuServe
 - Оптимални срещу алчни алгоритми
 - Компресиране в реално време
 - LZW срещу Марков
 - Компресиране със загуба
 - Изрязване и квантифициране
 - JPEG
 - Компресиране на видеоизображение. MPEG
 - Уейвлети
 - Компресиране с фрактали
 
Безплатно изтегляне на книгата “Програмиране=++Алгоритми;”
Книгата за алгоритми на Преслав и Панайот може да се изтегли безплатно от нейния сайт (programirane.org/download) или да се намери в хартиен вид на книжния пазар.
8 Responses to “Книгата “Програмиране = ++Алгоритми;” с нов уеб сайт + безплатно в PDF вариант”
Много е добра наистина 🙂
Най-добрата книга за алгоритми и структури от данни!
Търсих я по онлайн книжарниците, но навсякъде е изчерпана.. Някакви идеи ?
Здравей,Красимире,книгата я имаше по доста книжарници до скоро,явно тиража се е изчерпал,иначе почти съм сигурен,че можеш да я намериш в книжарницата на ФМИ.
За феновете на алгоритмите вече имаме безплатни курсове по алгоритмично програмиране за подготовка за олимпиади и състезания по информатика: https://softuni.bg
То је неке интересантне ствари овде на 999999999 Хвала за то објављивање.
Книгата наистина е изчерпена щом и на площад Славейков я няма.
Благодарности за това, че може да се изтегли безплатно безплатно.
Това е библията!