ву дорівнює кількості елементів масиву мінус один. Разом з тим можливо, що масив реально буде впорядкований за менше число циклів. Наприклад, послідовність чисел 5 1 2 3 4, якщо її розглядати як уявлення масиву, буде впорядкована за один цикл, і виконання решти трьох циклів не матиме сенсу. p align="justify"> Тому в програму введена логічна змінна changed, якої перед виконанням чергового циклу присвоюється значення FALSE. Процес сортування (цикл repeat) завершується, якщо після виконання чергового циклу перевірки сусідніх елементів масиву (цикл for) жоден елемент масиву не був обміняний з сусіднім, і, отже, масив вже впорядкований. br/>В
Рис. 1.2. Етапи сортування масиву методом обміну після завершення процесу сортування
Для організації пошуку в масиві можуть бути використані різні алгоритми.
Лінійний, послідовний пошук - алгоритм знаходження заданого значення довільної функції на деякому відрізку. [2] Цей алгоритм є найпростішим алгоритмом пошуку і на відміну, наприклад, від двійкового, що не накладає ніяких обмежень на функцію і має найпростішу реалізацію. Пошук значення функції здійснюється простим порівнянням чергового розглянутого значення (як правило пошук відбувається зліва направо, тобто від менших значень аргументу до великих) і, якщо значення збігаються (з тією або іншою точністю), то пошук вважається завершеним. [2]
Якщо відрізок має довжину N, то знайти рішення з точністю до можна за час . Т.ч. асимптотическая складність алгоритму - . У зв'язку з малою ефективністю в порівнянні з іншими алгоритмами лінійний пошук зазвичай використовують тільки якщо відрізок пошуку містить дуже мало елементів, проте лінійний пошук не вимагає додаткової пам'яті або обробки/аналізу функції, так що може працювати в потоковому режимі при безпосередньому отриманні даних з будь-якого джерела. Так само, лінійний пошук часто використовується у вигляді лінійних алгоритмів пошуку максимуму/мінімуму.
Двійковий (бінарний) пошук (також відомий як метод розподілу навпіл і дихотомія) - класичний алгоритм пошуку елемента в відсортованому масиві (векторі), використовує дроблення масиву на половини. [4]
Окремим випадком двійкового пошуку є метод бисекции, який застосовується для пошуку коренів заданої безперервної функції на заданому відрізку.
Лістинг 1.2. Двоичныйпоискэлементавмассиве. [5]
function RecurceFind (L, R: Integer): Integer;
var : Integer;
begin
if R