admin / 20.01.2018
Содержание
16.07.2013
Аннотация:
В классическом учебнике тьюринговского лауреата Н. Вирта аккуратно, на тщательно подобранных примерах прорабатываются основные темы алгоритмики — сортировка и поиск, рекурсия, динамические структуры данных. Перевод на русский язык выполнен заново, все рассуждения и программы проверены и исправлены, часть примеров по согласованию с автором переработана с целью максимального прояснения их логики (в том числе за счет использования цикла Дейкстры). Нотацией примеров теперь служит Оберон/Компонентный Паскаль — наиболее совершенный потомок старого Паскаля по прямой линии. Все программы проверены и работают в популярном варианте Оберона — системе Блэкбокс, и доступны в исходниках на прилагаемом CD вместе с самой системой и дополнительными материалами. Большая часть материала книги составляет необходимый минимум знаний по алгоритмике не только для программистов-профессионалов, но и любых других специалистов, активно использующих программирование в работе. Книга может быть использована как учебное пособие при обучении будущих программистов, начиная со старшеклассников в профильном обучении, а также подходит для систематического самообразования.
Год издания: 2010
Издательство: ДМК Пресс
Формат: DJVU
Страниц: 274
Скачано: 9963 раз
Скачать книгу
yagub53@mail.ru, 02.12.2013 07:23
spasibo
Андрей, 06.06.2014 01:45
Спасибо огромное !
Наргиза, 15.11.2014 01:23
mirzahmedovan@mail.ru
Михаил 1724, 13.03.2015 03:15
Эх люблю до сих пор программировать на Паскале, не смотря на то, что давно устарел и но то, что я знаю несколько другие языки (Javascript, C++) Pascal — старый, тёплый, ламповый, простой
oleg, 28.12.2015 19:51
Книга супер, всем советую)
ДМ, 03.03.2017 03:14
Спасибо!!!
Інформація Автореферат Анализ архив Бизнес-план Биография Бюллетень Викторина Диплом Диссертация Доклад |
Программа курса «Алгоритмы и структуры данных»
|
В классическом учебнике тьюринговского лауреата Н. Вирта аккуратно, на тщательно подобранных примерах прорабатываются основные темы алгоритмики – сортировка и поиск, рекурсия, динамические структуры данных.
Перевод на русский язык выполнен заново, все рассуждения и программы проверены и исправлены, часть примеров по согласованию с автором переработана с целью максимального прояснения их логики (в том числе за счет использования цикла Дейкстры).
Нотацией примеров теперь служит Оберон/Компонентный Паскаль – наиболее совершенный потомок старого Паскаля по прямой линии.
Все программы проверены и работают в популярном варианте Оберона – системе Блэкбокс.
Большая часть материала книги составляет необходимый минимум знаний по алгоритмике не только для программистов-профессионалов, но и любых других специалистов, активно использующих программирование в работе.
Книга может быть использована как учебное пособие при обучении будущих программистов, начиная со старшеклассников в профильном обучении, а также подходит для систематического самообразования.
(Компакт-диск прилагается только к печатному изданию.)
В нашей электронной библиотеке вы можете скачать книгу «Алгоритмы и структуры данных» автора Никлауса Вирт в формате epub, fb2, rtf, mobi, pdf себе на телефон, андроид, айфон, айпад, а так же читать онлайн и без регистрации. Ниже вы можете оставить отзыв о прочитанной или интересующей вас книге.
Структуры и алгоритмы обработки данных Литература: • Кнут Д. Искусство программирования. т. 1, 2, 3, 4. Третье издание. — Вильямс, 2010. (1968, 1969, 1973, 2005) • Ахо А. , Хопкрофт Д. , Ульман Д. Структуры данных и алгоритмы. — ИД Вильямс, 2003. • Вирт Н. Алгоритмы + структуры данных = программы. – Невский диалект, 2008. (1985) • Вирт Н. Алгоритмы и структуры данных. – Невский диалект, 2008. (1989) • Кормен Т. , Лейзерсон Ч. , Ривест Р. , Штайн К. Алгоритмы: построение и анализ. — Вильямс, 2010. • Каррано Ф. , Причард Дж. Абстракция данных и решение задач на C+ +. Стены и зеркала, 3 -е издание. – Вильямс, 2003. (2002) • Кубенский А. А. Структуры и алгоритмы обработки данных. Объектно-ориентированный подход и реализация на С++. – БХВ-Петербург, 2004. • Гудрич М. , Томасия Р. Структуры данных и алгоритмы в Java. – Минск: Новое знание, 2003.
(2001)
Цели и задачи курса Цель – научиться технике конструирования и формулирования алгоритмов, описывающих некоторые типовые процессы обработки данных. Задачи: 1. Алгоритмы и структуры данных взаимосвязаны. 2. Использовать приемы, не зависящие от конкретных приложений. 3. Язык инструмент, а не самоцель. 4. Абстрактные типы данных и структуры данных — не одно и то же. 5. От сложного к простому через рекурсию. 6. Оценка эффективности алгоритмов – составная часть компьютерного решения задач.
Структура курса (1 часть) Указатели Динамические структуры данных Абстрактные типы данных (стеки, очереди, деревья) Рекурсия Эффективность алгоритмов. Управление памятью
Структура курса (2 часть) Хеш-таблицы Сортировка Поиск Комбинаторные алгоритмы
Основные понятия — память Фон-Неймановская архитектура Однородность памяти Область кода Область данных (статическая) Область данных (динамическая) Свободная память (куча) Память программы Куча
Основные понятия — данные тип данных — множество значений, которые может принимать переменная структура данных — набор переменных, возможно, различных типов данных, объединенных определенным образом ( способ организации данных )int a; // объявление переменной a целого типа float b; // объявление переменной с плавающей запятой char d = ‘s’; // инициализация переменной типа char struct str_name { int member_1; float member_2; }; Абстрактный тип данных — это тип данных, который предоставляет для работы с его элементами определённый набор функций.
class Stack { ………………… void Push(int i ); int Pop(); bool is. Empty(); …………………. };
Основные понятия — алгоритм Алгоритм — точная конечная последовательность действий , обеспечивающая получение требуемого результата из заданных исходных данных. Основные свойства алгоритмов: 1. Дискретность 2. Определенность (детерминированность) 3. Результативность 4. Массовость 5. Эффективность Алгоритм Евклида. Найти наибольший общий делитель для целых m>n. Начало m ; n; r=m%n; r= = 0 m=n; n=r; Конец Да Нет n;
21.06.2014
Всем привет. Совсем недавно я рассуждал о том, как изучить графы. Сегодня я решил поговорить на похожую тему: о том, как можно улучшить свои знания в области алгоритмов и структур данных.
Самое первое, с чего нужно начать изучение какой-то темы — это определение цели изучения данного предмета. Как всем хорошо известно, без стимула что-то изучать крайне трудно. Эта человеческая особенность, которую можно использовать во благо себе. Например, если человек хочет эмигрировать в США, то он крайне заинтересован в изучении английского языка, и процесс изучения проходит довольно быстро. С другой стороны, когда многим школьникам язык практически не нужен, большинство из них так и не начинают говорить на английском языке к концу 11-ого класса.
Зачем можно изучать алгоритмы и структуры данных? Причин несколько. Во-первых, нельзя стать хорошим разработчиком, не зная такие базовые вещи, как основные алгоритмы и структуры.
Во-вторых, в огромном количестве интервью вам будут задавать вопросы по алгоритмам. Не важно, пригодятся вам эти знания во время выполнения работы, или нет. Правильно ли задавать такие вопросы на интервью — дело десятое, нам, разработчикам, просто стоит принять этот факт и изучить алгоритмы.
Кроме того, некоторым из нас действительно знания по алгоритмам и структурам данных пригодятся на работе. Конечно, не все будут писать свои сортировки, но имплементировать какие-то алгоритмы уж точно придётся.
Лично я почувствовал необходимость в изучении алгоритмов и структур данных примерно на 2-м курсе, когда проходил первые несколько интервью на джуниорские позиции. Мне поступало довольно много вопросов по этой теме.
К сожалению, в своём институте я практически не изучал алгоритмы. Формально этот курс у меня был. Однако его вела молодая девушка (23 года, если я правильно помню), которая практически ничего не знала в этой теме. Всё, что мы успели пройти за семестр — это связанный список и бинарный поиск.
Как же я восполнял пробелы в этой теме? Первое, что я сделал — это посмотрел отличную запись лекций по алгоритмам и структурам данных от Лекториум — Первый семестр, Второй семестр. Курс читается Александром Куликовым, а также Михаилом Дворкином. Это два талантливых преподавателя, которые посветили себя алгоритмам.
Данный курс — один из лидеров по теории в сфере алгоритмов и структур данных. Вы последовательно пройдете все основные алгоритмы и структуры данных. Всё начнётся с классических вещей (вычисление числе Фибоначчи), а закончится вполне себе интересными темами.
Честно сказать, я осилил только первый семестр, а также несколько лекций второго. Дальше без первичной подготовки мне было уже сложно.
Чем хорош этот курс? Во-первых, это гениальные преподаватели. Они действительно рассказывают очень интересно (правда, надо признаться, во всех видео курсах по алгоритмам, которые я видел, были замечательные преподаватели). Во-вторых, это отличная структура курса: от простого к сложному. Можно начать изучать алгоритмы практически без подготовки.
Чем плох этот курс? Данные видео — это запись реальных лекций, а не специально создававшийся видео курс. Поэтому, тут нет ни тестов, ни программирования. Есть только голая теория.
Кстати, этот курс представляет собой некоторую выжимку книги Кормен, Риверст, Лейзерсон. Алгоритмы: построение и анализ.
Данный курс — альтернатива первому. Он тоже представляет собой запись реальных лекций, которые проходят в школе анализа данных Яндекса. Плюсы и минусы у курсов опять-таки схожи.
Ведет курс Максим Александрович Бабенко — невероятно крутой специалист в области CS. Этого преподавателя действительно приятно слушать: рассказывает весьма живо и интересно.
Как мне показалось, этот курс немного сложнее, чем курс от Лекториум.
Когда мы говорим про алгоритмы, я просто не имею права ничего не сказать про книгу Кормена — Кормен, Риверст, Лейзерсон. Алгоритмы: построение и анализ.
Это действительно кладезь знаний по теме алгоритмов и структур. Книга позволит вам с нуля прокачаться до вполне серьезного уровня.
Какие плюсы книги? Есть всё: человеческое объяснение, псевдокод, оценка сложности, обоснование корректности.
Какие минусы книги? Книга совершенно точно не подойдёт для новичков в области алгоритмов. Она описывает буквально каждую мелочь в этой теме, и это может быть весьма непонятным для новичков.
Думаю, все из вас знают, что такое Coursera. Если вы не слышали про это, то это онлайн платформа для обучения. Причём, одна из самых крупных.
В Coursera есть несколько курсов, посвящённых алгоритмам и структурам данных. Я сам их не изучал, но, говорят, что курсы очень крутые. Курс 1. Курс 2.
Как говорится, читать книги можно бесконечно много, но без выполнения задач и программирования алгоритмов нельзя качественно изучить данную тему. Существует несколько вариантов, как вы можете попрактиковаться в алгоритмах. Это и интерактивные курсы (большинство из них проходит на английском языке). Это и олимпиадные задачки.
Лично я выбрал для себя сайт http://codeforces.com/. В нём все задачи разбиты по тегам (например, можно выбрать задачи, которые должны решаться динамическим программированием). Также есть и разграничение по уровню сложности. Всё это позволяет найти подходящие задачи для своего уровня.
Надеюсь, эти материалы помогут вам повысить свой уровень в сфере алгоритмов и структур данных. Если я упустил какой-то хороший ресурс по изучению данной теме, напишите, пожалуйста, о нём в комментариях.
Категории: Программирование
Другие записи из этой рубрики:
В книге даны краткие сведения о современных отечественных и зарубежных микроЭВМ индивидуального пользования. Описаны основные версии бейсика, наиболее распространенного языка программирования персональных ЭВМ (ПЭВМ), отечественных микро- и мнниЭВМ (Электроиика-60, Электроника-, ДЗ-28, Искра-226, диалоговых вычислительных комплексов ДВК-1, ДВК-2 и др.). Изложены основы программирования на бейсике. Основное внимание уделено общему математическому, алгоритмическому и программному обеспечению расчетов на ПЭВМ. В справочник включена обширная Библиотека прикладных программ на бейсике (более 300 программ), обеспечивающих реализацию основных численных методов, вычисление большинства специальных функций и решение ряда практиеских задач в различных областях науки и техники.
Для инженеров, научно-технических работников и студентов втузов.
Дьяконов В. П. Справочник по алгоритмам и программам иа языке бейсик для персональных ЭВМ: Справочник. — Москва. Издательство Наука. Гл. ред. физ.-мат. лит., 1989.— 240 с. — ISBN 5-02-014530-0.
ОГЛАВЛЕНИЕ книги Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ
Предисловие
Как пользоваться справочником
Глава 1. Основные характеристики и возможности персональных ЭВМ
§ 1.1. Современные типы персональных ЭВМ и их возможности
§ 1.2. Карманные персональные ЭВМ (Pocket Computers)
§ 1.3. Персональные ЭВМ среднего класса (Home Computers)
§ 1.4. Профессиональные ЭВМ и вычислительные микросистемы индивидуального пользования
§ 1.5. Периферийное оборудование персональных ЭВМ
Глава 2. Бейсик — основной язык программирования персональных ЭВМ
§ 2.1. Алфавит и основные операторы языка бейсик
§ 2.2. Модификации языка бейсик
§ 2.3. Арифметические и алгебраические операции, работа в режиме калькулятора
§ 2.4. Элементарное программирование на языке бейсик
§ 2.5. Специальные вопросы программирования на языке бейсик
§ 2.6. Перевод программ с одной версии языка бейсик на другую
Глава 3. Алгоритмы и программы элементарных вычислений
§ 3.1. Операции с действительными числами
§ 3.2. Операции и функции с комплексными числами и переменными
§ 3.3. Вычисление степенных многочленов и дробно-рациональных функций
§ 3.4. Вычисление ортогональных многочленов
§ 3.5. Операции с матрицами
§ 3.6. Вычисление факториалов и комбинаторика
§ 3.7. Преобразования координат и векторный анализ
Глава 4. Алгоритмы и программы реализации основных численных методов
§ 4.1. Решение систем линейных уравнений
§ 4.2. Интерполяция и экстраполяция
§ 4.3. Решение нелинейных и трансцендентных уравнений
§ 4.4. Решение систем нелинейных уравнений
§ 4.5. Решение алгебраических уравнений с действительными и комплексными коэффициентами
§ 4.6. Поиск экстремумов функций одной и множества переменных
§ 4.7. Численное дифференцирование и вычисление коэффициентов чувствительности
§ 4.8. Вычисление определенных интегралов
§ 4.9. Вычисление определенных интегралов специального вида
§ 4.10. Решение систем дифференциальных уравнений
§ 4.11. Гармонический синтез
§ 4.12. Вычисление собственных значений и векторов матриц
Глава 5. Спектральный, статистический, корреляционный и регрессионный анализ
§ 5.1. Спектральный анализ на основе дискретного преобразования Фурье
§ 5.2. Специальные виды спектрального анализа
§ 5.3. Статистический анализ и подготовка гистограмм
§ 5.4. Реализация метода Монте-Карло
§ 5.5. Корреляционный анализ
§ 5.6. Регрессионный анализ (приближение функций по методу наименьших квадратов)
§ 5.7. Сглаживание данных эксперимента
Глава 6. Вычисление специальных функций
§ 6.1. Методы вычисления специальных функций
§ 6.2. Интегральные показательные функции
§ 6.3. Интегральные синус и косинус
§ 6.4. Гамма-функции (включая неполные)
§ 6.5. Функции Бесселя (включая модифицированные)
§ 6.6. Функции Эйри
§ 6.7. Интегралы Френеля
§ 6.8. Эллиптические интегралы
§ 6.9. Функции Струве, Ангера и Вебера
§ 6.10. Гипергеометрические функции
§ 6.11. Дилогарифм
§ 6.12. Функции Кельвина
§ 6.13. Функции Дебая и Зиверта
§ 6.14. Интеграл вероятности и родственные ему функции
§ 6.15. Некоторые статистические функции
Глава 7. Прикладные программы технических и экономических расчетов
§ 7.1. Типовые электротехнические расчеты
§ 7.2. Расчет индуктивных элементов
§ 7.3. Расчет емкостных элементов и конденсаторов
§ 7.4. Расчет линий передачи и Задержки
§ 7.5. Расчет усилителей
§ 7.6. Расчет активных фильтров
§ 7.7. Расчет нелинейных и ключевых электронных устройств
§ 7.8. Расчеты в механике и термодинамике
§ 7.9. Финансово-экономические расчеты
Приложение 1. Подготовка к работе системы подготовки программ на базе микроЭВМ Электроника-ДЗ-28
Приложение 2.
Номера ошибок и их содержание для систем подготовки программ на базе микроЭВМ Электроника-ДЗ-28
Приложение 3. Подготовка ПЭВМ FX-702P к работе
Приложение 4. Номера ошибок и их содержание для ПЭВМ FX-702P
Приложение 5. Программная реализация некоторых численных методов частного применения
§ П5.1. Построение полинома по его действительным корням
§ П5.2. Обращение матрицы, вычисление определителя и решение систем линейных уравнений с разными векторами свободных членов
§ П5.3. Решение системы линейных уравнений методом отражения
§ П5.4. Решение системы линейных уравнений методом простых итераций
§ П5.5. Решение системы линейных уравнений методом Зейделя
§ П5.6. Решение системы линейных уравнений с переопределенной матрицей
§ П5.7. Приближенное вычисление нормального решения системы линейных уравнений с вырожденной матрицей
§ П5.8. Решение системы нелинейных уравнений методом простых итераций
§ П5.9. Вычисление спектра реакции нелинейной системы с аналитически заданной передаточной характеристикой на гармоническое воздействие
§ П5.10. Регрессия для 16 видов парных зависимостей у (х)
§ П5.11. Сплайн-аппроксимация, интерполяция и экстраполяция
§ П5.12. Пакет программ с матричными операторами
§ П5.13. Приближение функций по Чебышеву
Список литературы
Предметный указатель
ПРЕДИСЛОВИЕ
Прогресс в экономике, промышленности, науке и технике, в сфере образования сейчас во многом зависит от массового внедрения вычислительной техники. Не случайно задача повышения «компьютерной грамотности» населения стала государственной и политической задачей. Ее решение возможно благодаря интенсивному развитию нового поколения вычислительных средств — микроЭВМ индивидуального пользования или персональных ЭВМ (ПЭВМ).
Уже сейчас у нас в стране в пользовании находятся многие десятки тысяч таких ЭВМ — от настольных отечественных вычислительных микросистем индивидуального пользования (на базе микроЭВМ Электроника-60, Электроника-ДЗ-28, Электроника-ТЗ-59, Искра-226 и др.) и диалоговых вычислительных комплексов (ДВК-1, ДВК-2, ДВК-3) до зарубежных карманных компьютеров (Pocket Computers FX-702P, PC-1211, РС-1500 и др.). Осваивается производство дешевых и массовых домашних компьютеров (Home Computers) типа Агат, Элек-троника-БК-0010 и др.
Однако пока даже существующий парк таких ЭВМ используется недостаточно эффективно. Главная причина этого в том, что пользователями ПЭВМ являются в основном непрофессионалы в области вычислительной техники и вычислительной математики. Они слабо знакомы с эксплуатацией ЭВМ, языками и основами их программирования, разнообразными численными методами. Литературы, где все эти вопросы, с учетом специфики персонального использования ПЭВМ, рассматривались бы одновременно, пока практически нет. Многие ПЭВМ поставляются пользователям с весьма краткими (и рассчитанными на профессионалов) описаниями, часто без библиотек прикладных программ. В результате ПЭВМ нередко превращается в «черный ящик» на столе пользователя, таинственные возможности которого остаются нераскрытыми.
Справочник ориентирован на отмеченную выше обширную категорию пользователей ПЭВМ. При его подготовке учтена специфика нынешнего этапа применения ПЭВМ в СССР, т. е. использование ПЭВМ главным образом для автоматизации решения рутинных научно-технических, статистических и экономических задач. Поэтому, а также с учетом ограниченного объема справочника в нем мало внимания уделено игровым задачам, применению ПЭВМ в быту, решению сложных информационных задач (обработка графиков, редактирование текстов и т. д.). Описание таких применений должно быть предметом специальной литературы.
По построению справочник похож на ранее изданную книгу автора [10], посвященную расчетам на программируемых микрокалькуляторах (ПМК). Более того, сохранена значительная часть контрольных примеров [10]. Это, по мнению автора, облегчит массовой категории пользователей ПМК освоение новой, гораздо более мощной вычислительной техники — ПЭВМ.
В справочнике кратко описаны основные типы отечественных и зарубежных ПЭВМ, их периферийное оборудование и основной язык программирования — бейсик (BASIC) .Рассмотрен ряд типовых версий бейсика, от простых до расширенных, содержащих команды обработки символьных переменных, косвенной адресации и построения графиков. Даны основы программирования на бейсике и перевода программ с одной версии бейсика на другую.
Основное внимание в справочнике уделено описанию общего прикладного математического, алгоритмического и программного обеспечения ПЭВМ, рассчитанного прежде всего на научно-технические и статистические расчеты. По сравнению с [10] существенно расширено описание алгоритмов и увеличена сложность решаемых задач. Так, в справочнике описаны универсальные программы для решения систем линейных и дифференциальных уравнений (в том числе с автоматическим выбором шага интегрирования), численного интегрирования с заданной точностью, вычисления всех корней полиномов с действительными- и комплексными коэффициентами и т. д. Существенно расширен круг вычисляемых специальных функций. В последней главе дан ряд прикладных программ для решения задач в некоторых конкретных областях науки и техники. Разумеется, эти программы не исчерпывают решения всего многообразия таких задач. При использовании всех возможностей персональных ЭВМ на них можно решать сложные научно-технические задачи, вплоть до проектирования космических аппаратов [29].
Справочник ориентирован на научно-технических работников, инженеров, техников и студентов вузов и техникумов. Поскольку подобное справочное руководство подготовлено впервые, автор отдает себе отчет в том, что книга не лишена недостатков, и с благодарностью примет советы и замечания по ее содержанию. Автор выражает глубокую благодарность рецензенту доктору технических наук, профессору С. В. Черемных, кандидату технических наук, доценту Т. А. Самойловой, Т. А. Калаевой и всем коллегам, оказавшим помощь автору в подготовке программ и рукописи. Пожелания по книге следует направлять по адресу: 117071 Москва В-71, Ленинский просп., 15. Главная редакция физико-математической литературы издательства «Наука».
В. П. Дьяконов
Скачать книгу Дьяконов В. П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ. Издательство «Наука», Москва, 1989
FILED UNDER : IT