Видео: Алгоритмы и структуры данных
В современном программировании структуры данных и алгоритмы являются базовыми компонентами для написания программ. Задачи, решением которых занимается компьютер, лишь в исключительных случаях выражаются на битовом уровне. Обычно данные представляются в виде литер, чисел, символов и других более сложных последовательностей. Еще замысловатее дело обстоит с алгоритмами, которые используются для решения всякого рода задач. Для того чтобы основные структуры данных описывались максимально точно, были разработаны языки программирования, смысл которых кроется в однозначности всех предложений.
Видео: Лекция 1 | Алгоритмы и структуры данных (первый семестр) | Лекториум
Практически всеми языками программирования предоставляются средства, способные ссылаться на какие-либо структуры данных, исходя из присвоенного идентификатора. В качестве основных величин выступают константы и переменные. Для программиста они говорят многое, но вот для компьютера совершенно бесполезны. Поэтому текст написанной программы переводится в двоичный код при помощи компилятора. Иногда тип этих величин определяется компилятором, но в некоторых случаях требуется указание типа каждой переменной, который не меняется даже при выполнении всей программы до конца.
Следует сказать, что структура данных в первую очередь представляет собой методику организации информации в компьютерной памяти. Алгоритм же выступает в роли соответствующего процедурного элемента в самой программе. Сначала был придуман порядок действий для решения простейших задач вроде умножения чисел и вычисления тригонометрических функций. Однако в настоящее время важную роль играют и другие алгоритмы, позволяющие найти в тексте заданное слово, произвести сортировку и спланировать любые события. Точные математические операции выполняют в данном случае важные задачи.
Видео: Алгоритмы и структуры данных, Лекция №1
Во многих алгоритмах структуры данных могут отличаться невероятной сложностью. В итоге только правильный выбор представления данных может стать толчком к успешному программированию. К тому же от этого будет зависеть производительность программы. На самом деле общей теории выбора той или иной структуры не существует, и вряд ли когда-нибудь она предстанет перед миром. Есть только один выход, лежащий глубоко в базовых знаниях. Применив их на практике, можно создавать самые большие системы. Однако добиться мастерства в этом деле можно лишь после изучения основ.
На сегодняшний день в разработке программного обеспечения существует одна серьезная проблема, которая заключается в том, что структуры данных быстро эволюционируют и вызывают определенные сложности в обработке. Программисты обычно в процессе работы используют стандартные библиотеки компонентов. Они помогают исключить большое количество рутинных операций. Все компоненты проходят тщательную проверку и хорошо описываются. Однако в случае с библиотеками есть существенные ограничения, способные заметно снизить их достоинства. Они включают в себя огромное число компонентов, но реализация их обработки оставляет за собой очень мало вариантов.