М О Д У Л Ь 2 Алгоритмы
М О Д У Л Ь 2 Алгоритмы и структуры данных Лекция №1. Предмет и задачи дисциплины Дайте мне подходящую структуру данных И я на ней буду делать алгоритмы…. ( из народу) Лектор – Шаповалов С.П. Кафедра компьютерных наук Сумского государственного университета
Содержание лекции. 1. Введение в дисциплину. 2. Понятие «структура данных». Базовые структуры. 3. Решаемые задачи. 4. Реализация в алгоритмах.
Алгоритмы и структуры данных (DSA – Data Structures and Algorithms) СТРУКТУРА КУРСА Семестр 3 (осень) : 30 часов - лекций ; 30 часов - лабораторных занятий, ОДЗ; итоговое тестирование; зачет. Сайт курса (лекции, задания) :
ЛИТЕРАТУРА. Т.Кормен, Ч. Лейзерсон, Р.Риверст Алгоритмы: построение и анализ, 2- е изд. - М.: Вильямс, 2005. - 1296 с. 2. Д.Кнут Искусство программирования, в 3-х томах, - М.: Вильямс, 2000. 3. Р.Седжвик Фундаментальне алгоритмы на С++ - СПб: ООО „ДиаСофтЮП”, 2003.-1136 с. 4. А.Ахо, Д.Хопкрофт, Д.Ульман Структуры данных и алгоритмы .- М.:Вильямс, 2003.-384 с. 5. Н.Вирт Алгоритмы и структуры данных. -М.: Мир,1989.-360 с.
Полезное!!!! www.lektorium.tv = В РАМКАХ ПРЕДМЕТА Computer Science Лекции «Алгоритмы и структуры данных» www.intuit.ru = Структуры и алгоритмы компьютерной обработки данных
Главное предназначение курса – научить эффективно программировать!!! Основные предположения при чтении курса. Предполагается !!! вы знакомы с основами программирования на C; можете написать, отладить и запустить простые программы на С; есть простое понимание объектно-ориентированного проектирования.
В конце концов, только знание инструментов и технологий обеспечит правильное решение поставленной задачи, и только определенный уровень опыта обеспечит устойчиво профессиональные результаты. Реймонд Филдинг. Технология специальных эффектов в кинематографе/ Исследование алгоритмов и структур данных является одной из основ программирования, а также богатым полем элегантных технологий и сложных математических изысканий. И это — что-то большее, чем развлечение для теоретически подготовленных: хороший алгоритм или структура данных могут позволить решить в течение нескольких секунд проблему, которая без них решалась бы годы.
Возможность решения задачи целиком и полностью зависит от наличия специальных алгоритмов и структур данных. Если вы разрабатываете программы в новых для вас областях программирования, то вы должны выяснить, какие наработки уже существуют, иначе вы потратите свое время впустую в попытках плохо сделать то, что уже кем-то было сделано хорошо. Каждая программа зависит от алгоритмов и структур данных, но редко бывает нужно изобретать новые алгоритмы. Даже в сложной программе, например в компиляторе или Web-браузере, структуры данных по большей части являются массивами, списками, деревьями и хэш-таблицами. Когда программе нужна более изощренная структура, она, скорее всего, будет основываться на этих более простых структурах. Соответственно, задача программиста — знать, какие алгоритмы и структуры доступны, а также понимать, как выбрать среди них нужные. Такова, вкратце, ситуация. Есть лишь горстка основных алгоритмов, которые применяются практически в каждой программе, — это, прежде всего, поиск и сортировка, и даже эти алгоритмы зачастую включены в библиотеки. Почти все структуры данных также сделаны на основе нескольких фундаментальных структур.
Базовые типы. Базовые типы предопределены стандартом языка, указываются зарезервированными ключевыми словами и характеризуются одним значением. Их не надо определять и их нельзя разложить на более простые составляющие без потери сущности данных. Базовые типы объектов создают основу для построения более сложных типов. Производные типы. Производные типы задаются пользователем, и переменные этих типов создаются как с использованием базовых типов, так и типов классов. Типы класса. Экземпляры этих типов называются объектами.
Массив хранит количество элементов в определенном порядке. Они доступны с помощью целое чтобы указать, какие требуется элемент (хотя элементы могут быть почти любого типа). Массивы могут быть фиксированной длины или переменной. Запись (также называемые кортежи или структуры) являются одними из простейших структур данных. Запись представляет собой значение, которое содержит другие ценности, как правило, в фиксированном количестве и последовательности и, как правило, проиндексированных по имени. Элементы записей обычно называют полями. Хеш-таблица (также называемая словарь или карта) представляет собой более гибкую вариацию на записи, в которой могут быть добавлены или удалены пары имя - значение . Множества представляет собой структуру данных, которая может хранить определенные значения, без какого-либо порядка, и без повторяющихся значений. Графы и деревья связанные абстрактные структуры данных, состоящие из узлов. Каждый узел содержит значение и также один или несколько указателей на другие узлы. Графы могут быть использованы для представления сети, в то время как деревья обычно используются для сортировки и поиска.