# data[].attributes.body
Це вирази у яких оператор розміщується між двома операндами. Прикладом може бути 20 + 5. Воно зрозуміле для нас. Для комп'ютера це потрібно просканувати кожен раз і знайти оператор з найбільшим пріоритетом. Тож затрата часу виєходить велика.

# data[].attributes.body
вираз у формі «оператор ab» (ab+), тобто коли за парою операндів слідує оператор. Сканує 1 раз і виконує (залежно від оператора дію) над 2 останіми елементами. Дуже ефективно для комп'ютера, а для нас не зовсім. Йде з ліва на право

# data[].attributes.body
Слово «Алгоритм» означає « набір скінченних правил або інструкцій, яких слід дотримуватися під час обчислень або інших операцій вирішення проблем ».

Використовують:

Комп’ютерні науки;

Математика;

Дослідження операцій;

Штучний інтелект;

Наука про дані;

Вони потрібні для Алгоритми необхідні для ефективного та результативного вирішення складних задач.

Вони допомагають автоматизувати процеси та зробити їх більш надійними, швидшими та легшими у виконанні.

# data[].attributes.headline
Алгоритми сортування

# data[].attributes.subject
Алгоритми сортування

# data[].attributes.body
Алгоритм сортування використовується для перевпорядкування заданого масиву або списку елементів відповідно до оператора порівняння елементів. Оператор порівняння використовується для визначення нового порядку елементів у відповідній структурі даних.

Види сортувальних алгоритмів:

Сортування вибору

Бульбашкове сортування

Сортування вставкою

Сортування злиттям

# data[].attributes.headline
Бульбашкове сортування

# data[].attributes.subject
Бульбашкове сортування

# data[].attributes.body
Бульбашкове сортування — це найпростіший алгоритм сортування , який постійно змінює сусідні елементи, якщо вони розташовані в неправильному порядку. Цей алгоритм не підходить для великих наборів даних, оскільки його середня та найгірша часова складність досить висока.

Перейдіть зліва та порівняйте сусідні елементи, а вищий розміщено праворуч.

Таким чином, найбільший елемент спочатку переміщується в крайній правий кінець.

Потім цей процес продовжується.

Він вимагає багато операцій зробити, але не важкий для розуміння.

# data[].attributes.headline
Сортування злиттям

# data[].attributes.subject
Сортування злиттям

# data[].attributes.body
Сортування злиттям — це алгоритм сортування, який дотримується підходу «розділяй і володарюй» .

Простими словами, ми можемо сказати, що процес сортування злиттям полягає в тому, щоб розділити масив на дві половини, відсортувати кожну половину, а потім знову об’єднати відсортовані половини. Повторюється доки не відсортовано весь масив. Затрата часу в найгіршому випадку O(log n).

# data[].attributes.headline
Алгоритм швидкого сортування

# data[].attributes.subject
Алгоритм швидкого сортування

# data[].attributes.body
Швидкого сортування алгоритм - алгоритм сортування, заснований на алгоритмі «Розділяй і володарюй» , який вибирає елемент як опору та розбиває даний масив навколо вибраної опори, розміщуючи опору в правильному положенні в сортованому масиві.

Він працює так:

Мета розділів полягає в тому, щоб розташувати стрижню (будь-який елемент можна вибрати як стрижню) у правильному положенні в сортованому масиві та розмістити всі менші елементи ліворуч від стрижня, а всі більші елементи — праворуч від стрижня. .

Розбиття виконується рекурсивно з кожного боку опорної точки після того, як опорна точка розміщена в правильному положенні, і це остаточно сортує масив.

# data[].attributes.headline
Сортування купи 

# data[].attributes.subject
Сортування купи 

# data[].attributes.body
Сортування купи — це техніка сортування на основі порівняння на основі двійкової структури даних купи. Це схоже на сортування вибору , де ми спочатку знаходимо мінімальний елемент і розміщуємо мінімальний елемент на початку. Повторіть той самий процес для решти елементів. Є нестабільний алгоритм сортування на основі порівняння. Як же працює:

Heap Sort спочатку будує максимальну купу з несортованого масиву, де кожен батьківський елемент більший за своїх нащадків. Потім він послідовно видаляє корінь купи (найбільший елемент), поміщає його у відсортований масив і відновлює купу. Цей процес повторюється до тих пір, поки купа не залишиться порожньою, а відсортований масив буде містити елементи у відповідному порядку.

# data[].attributes.headline
Алгоритм пошуку

# data[].attributes.subject
Алгоритм пошуку

# data[].attributes.body
Алгоритми пошуку є основними інструментами в інформатиці, які використовуються для пошуку конкретних елементів у колекції даних. Ці алгоритми створені для ефективної навігації структурами даних для пошуку потрібної інформації, що робить їх основними в різних програмах, таких як бази даних, веб-пошукові системи тощо. Під час пошуку завжди є конкретний цільовий елемент або елемент, який ви хочете знайти в колекції даних. Цією метою може бути значення, запис, ключ або будь-яка інша сутність даних, що представляє інтерес.

# data[].attributes.headline
Лінійний пошук

# data[].attributes.subject
Лінійний пошук

# data[].attributes.body
Лінійний пошук визначається як послідовний алгоритм пошуку , який починається з одного кінця та проходить кожен елемент списку, доки не буде знайдено потрібний елемент, інакше пошук продовжується до кінця набору даних.

Як він працює:

Кожен елемент розглядається як потенційний відповідник для ключа та перевіряється на те саме.

Якщо знайдено, що будь-який елемент дорівнює ключу, пошук завершується успішно, і повертається індекс цього елемента.

Якщо жоден елемент, що відповідає ключу, не знайдено, пошук видає «Збігів не знайдено».

# data[].attributes.headline
Стрибучий пошук

# data[].attributes.subject
Стрибучий пошук

# data[].attributes.body
Jump Search — це алгоритм пошуку певного значення у відсортованому масиві шляхом переходу через певні кроки в масиві.

Для визначення кроків визначаємо sqrt довжини масиву (скільки буде 1 ерок проєходити елементів).

Етапи алгоритму:

Визначте розмір кроку m, взявши sqrt довжини масиву n.

Почніть з першого елемента масиву та переходьте на m кроків, доки значення в цій позиції не стане більшим за цільове значення.
Коли буде знайдено значення, що перевищує цільове, виконайте лінійний пошук, починаючи з попереднього кроку, доки ціль не буде знайдено або поки не стане ясно, що ціль відсутня в масиві.
Якщо ціль знайдено, поверніть її індекс. Якщо ні, поверніть -1, щоб вказати, що ціль не знайдено в масиві.  Плюси його Краще, ніж лінійний пошук масивів, де елементи рівномірно розподілені.

має меншу часову складність порівняно з лінійним пошуком для великих масивів. Q кроків, виконаних під час пошуку переходів, пропорційна квадратному кореню з розміру масиву, що робить його більш ефективним для великих масивів.

# data[].attributes.headline
Характеристики алгоритму

# data[].attributes.subject
Характеристики алгоритму

# data[].attributes.body
Мета алгоритму — це визначальна властивість алгоритму.

Точність алгоритму

Не всі задачі потребують отримання вірної відповіді з ймовірністю, рівною 1. Для деяких завдань можуть підійти алгоритми, які дають оцінку ймовірності тієї чи іншої події, або приблизне значення.

Швидкість алгоритму

Вона показує не лише середню швидкість роботи алгоритму, але й можливу зміну швидкості в залежності від кількості вхідних даних.

Методи побудови алгоритму

Існують різноманітні методи побудови алгоритмів: метод декомпозиції, метод послідовних наближень, метод випадкового пошуку і т.д.

Складність алгоритму

Так. Однією з найважливіших характеристик алгоритмів є складність. Основним показником складності алгоритму є час, необхідний для вирішення задачі, та потрібний об’єм пам’яті.