Структури даних і алгоритми - базові компоненти програми
Відео: 1. Алгоритми і структури даних. Вступ. масиви | Технострим
У сучасному програмуванні структури даних і алгоритми є базовими компонентами для написання програм. Завдання, вирішенням яких займається комп`ютер, лише у виняткових випадках виражаються на битовом рівні. Зазвичай дані представляються у вигляді літер, чисел, символів та інших складніших послідовностей. Ще більш хитрими справа йде з алгоритмами, які використовуються для вирішення будь-якого роду завдань. Для того щоб основні структури даних описувалися максимально точно, були розроблені мови програмування, зміст яких криється в однозначності всіх пропозицій.
Відео: Лекція 1: Складність алгоритмів
Практично всіма мовами програмування надаються кошти, здатні посилатися на будь-які структури даних, виходячи з присвоєного ідентифікатора. В якості основних величин виступають константи і змінні. Для програміста вони говорять багато, але ось для комп`ютера зовсім марні. Тому текст написаної програми перекладається в двійковий код за допомогою компілятора. Іноді тип цих величин визначається компілятором, але в деяких випадках в такому випадку потрібне типу кожноїзмінної, який не змінюється навіть при виконанні всієї програми до кінця.
Слід сказати, що структура даних в першу чергу є методику організації інформації в комп`ютерній пам`яті. Алгоритм же виступає в ролі відповідного процедурного елемента в самій програмі. Спочатку був придуманий порядок дій для вирішення найпростіших завдань на зразок множення чисел і обчислення тригонометричних функцій. Однак в даний час важливу роль відіграють і інші алгоритми, що дозволяють знайти в тексті заданий слово, зробити сортування і спланувати будь-які події. Точні математичні операції виконують в даному випадку важливі завдання.
Відео: Алгоритми і структури даних
У багатьох алгоритмах структури даних можуть відрізнятися неймовірною складністю. У підсумку тільки правильний вибір представлення даних може стати поштовхом до успішного програмування. До того ж від цього буде залежати продуктивність програми. Насправді загальної теорії вибору тієї чи іншої структури не існує, і навряд чи коли-небудь вона постане перед світом. Є тільки один вихід, що лежить глибоко в базових знаннях. Застосувавши їх на практиці, можна створювати найбільші системи. Однак домогтися майстерності в цій справі можна лише після вивчення основ.
На сьогоднішній день в розробці програмного забезпечення існує одна серйозна проблема, яка полягає в тому, що структури даних швидко еволюціонують і викликають певні складності в обробці. Програмісти зазвичай в процесі роботи використовують стандартні бібліотеки компонентів. Вони допомагають виключити велику кількість рутинних операцій. Всі компоненти проходять ретельну перевірку і добре описуються. Однак у випадку з бібліотеками є істотні обмеження, здатні помітно знизити їх гідності. Вони включають в себе величезну кількість компонентів, але реалізація їх обробки залишає за собою дуже мало варіантів.