Автор: Джеймс Рос, Саймън Харис
Обем: 720 стр.
Размер в мм.: 165 х 235
Издател: АлексСофт
Корица: Мека
Година на издаване: 2006
Състояние: На склад при доставчик
Доброто разбиране на известни компютърни алгоритми и знания кога и къде трябва да се прилагат са жизненоважни при създаване на софтуер, който не само работи правилно, но и ефективно. Това е единствената книга, която дава тази ценна информация – от основите на алгоритми, структури данни и характеристики на производителността до специфичните алгоритми в ежедневието.
Тази книга е пълна с подробни обяснения и ясни примери. Тя започва с представяне на някои фундаментални структури от данни и след това обяснява различни алгоритми за сортиране. После ще научите за ефективни методи за съхранение и търсене на информация чрез хеширане, дървета, множества и карти. Авторите дават съвети за оптимизиране и начини за избягване на чести грешки свързани с производителността. В края на тази книга ще бъдете готови да изграждате алгоритмите и структурите от данни, най-често срещани в ежедневната работа на програмистите.
Какво ще научите в тази книга:
- основи на алгоритми, като итерация и рекурсия
- елементарни структури като списък, стек и опашка
- основни и сложни алгоритми за сортиране включително сортиране с вмъкване, бързо сортиране и сортиране на Шел
- сложни структури от данни като двоични дървета, троични дървета и пирамида
- алгоритми за търсене и напасване на низове, хеширане и изчислителна геометрия
- как се използват техники за разработване, водени от тестове за гарантиране на качество
- как може да се подобри драматично производителността на един код с приложни техники за профилиране и оптимизация
Тази книга е за всеки, който разработва приложения или точно сега започва с това, и иска да разбере компютърните алгоритми и структурите от данни. Едно начално разбиране на програмирането би било от полза.
СЪДЪРЖАНИЕ:
За авторите
Благодарности
Въведение
- Кой трябва да чете тази книга?
- Нужни познания
- Какво ще научите?
- Как да използваме тази книга?
Принципни положения
- Давай по-просто
- Не оптимизирайте прекалено
- Използвайте интерфейси
- Тествайте
- Проверявайте всичко
- От какво имате нужда?
Конвенции
- Как да се използват упражненията?
- Изходен код
Грешки
Начало
Итерация и рекурсия
Извършване на изчисления
Обработка на масиви
- Използване на итерация за преодоляване на проблеми с масиви
- Как работи?
Рекурсия
- Пример за рекурсивно извеждане на дърво
- Анатомия на рекурсивен алгоритъм
- Обобщение
- Упражнения
Списъци
- Какво са списъците?
- Тестване на списъци
Реализиране на списъци
- Масив-списък
- Свързан списък
- Обобщение
- Упражнения
Опашки
Стекове
Основно сортиране
Сортиране за напреднали
Приоритетни опашки
Двоично търсене и вмъкване
Двоични дървета за търсене
Хеширане
- Какво е хеширане?
Работа с хеширане
- Как работи?
- Линейно сортиране
- Работа с кофи
- Оценка на производителността
- Обобщение
- Упражнение
Множества
Понятия за множества
- Тестване на реализациите на множества
- Списъчно множество
- Хеш-множество
- Дървовидно множество
- Обобщение
- Упражнения
Карти
- Понятие за карти
- Тестване на реализациите на карта
- Списъчна карта
- Хеш-карта
- Дървовидна карта
- Обобщение
- Упражнения
Троични дървета за търсене
В-дървета
- Понятието В-дърво
- Практическо използване на В-дървета
- Обобщение
- Упражнения
Търсене на низове
Съпоставяне на низове
- Запознаване със Soundex
- Запознаване с разстоянието в думи на Левенщайн
- Обобщение
Изчислителна геометрия
Прагматична оптимизация