Целью дисциплины «Алгоритмы и структуры обработки данных» является изучение и исследование наиболее важных компьютерных алгоритмов, обучение фундаментальным технологиям решения задач.
Чтобы стать квалифицированным программистом, не достаточно овладеть элементарными приемами программирования и современными инструментальными системами программирования. Необходимо изучить большое количество наиболее важных алгоритмов, используемых при решении разнообразных задач.
При создании компьютерной программы обычно используется известный метод, который был разработан для решения какой-либо задачи. Часто этот метод не зависит от используемого компьютера. Поэтому для выяснения способа решения поставленной задачи, прежде всего, нужно выбрать и исследовать именно метод решения. В программировании метод решения носит термин «алгоритм».
Большинство представляющих интерес алгоритмов сопряжены с методами организации данных, участвующих в вычислениях. Созданные таким образом объекты называются «структурами данных». Структуры данных формируются и используются алгоритмами либо в качестве вспомогательного средства для реализации метода решения, либо как конечный результат. Простые алгоритмы могут порождать сложные структуры данных и, наоборот, сложные алгоритмы могут использовать простые структуры данных.
Поэтому структуры данных выступают в дисциплине как важный и самостоятельный объект изучения.
При реализации той или иной задачи, как правило, возможны несколько альтернативных методов решения. Если при решении простых задач выбор метода не имеет особого значения, то для сложных задач мы сталкиваемся с необходимостью выбора методов, при которых время и память используются с максимальной эффективностью. Казалось бы, этот момент не существенен, если мы можем использовать для решения задачи современный быстродействующий компьютер с большим объемом памяти.
Но в приложениях, в которых обрабатываются миллионы объектов, часто оказывается возможным ускорить работу программы в миллионы раз, используя хороший алгоритм. В это же время использование современного компьютера может ускорить работу программы всего в 10-100 раз.
Таким образом, тщательная обработка алгоритма – исключительно эффективная часть процесса решения сложной задачи в любой области применения.
Часто в связи с рассмотрением, анализом и разработкой фундаментальных алгоритмов обработки данных возникает вопрос: «Зачем нужно разрабатывать эти алгоритмы и программы, если можно использовать готовые программы?». Например, библиотека стандартных шаблонов (Standard Template Library - STL) языка С++ содержит реализации множества базовых алгоритмов.
Аргументов за реализацию несколько:
1. Реализация версий основных алгоритмов позволяет лучше их понять и, следовательно, эффективнее использовать и настраивать более совершенные библиотечные версии.
2. В связи с использованием новых вычислительных сред (аппаратных и программных) с новыми свойствами решается проблема переносимости программы с собственной реализацией алгоритмов.
3. Собственная реализация, как правило, больше приспособлена к особенностям конкретной задачи.
4. Механизм совместного использования стандартных программ зачастую недостаточно мощны и существенно снижают эффективность программы
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.