Лінійний пошук - алгоритм послідовного пошуку знаходження заданого значення довільної функції на деякому її відрізку. Цей алгоритм є найпростішим алгоритмом пошуку і на відміну, наприклад, від двійкового пошуку, не накладає жодних обмежень на функцію і має просту реалізацію. Пошук значення функції здійснюється простим порівнянням чергового розглянутого значення (як правило пошук відбувається зліва направо, тобто від менших значень аргументу до більших) і, якщо значення збігаються (з тією або іншою точністю), то пошук вважається завершеним.
Якщо відрізок має довжину N, то знайти рішення з точністю до можна за час . Таким чином асимптоматична складність алгоритму - . У зв'язку з малою ефективністю в порівнянні з іншими алгоритмами лінійний пошук зазвичай використовують лише тоді, коли відрізок пошукової системи містить дуже мало елементів, однак лінійний пошук не вимагає додаткової пам'яті або обробки/аналізу функції, так що може працювати в потоковому режимі при безпосередньому отриманні даних з будь-якого джерела. Так само, лінійний пошук часто використовується у вигляді лінійних алгоритмів пошуку максимуму/мінімуму.
Як приклад можна розглянути пошук значення функції на множині цілих чисел, представленої в таблиці.
Приклад
Змінні та містять, відповідно, ліву та праву границю відрізка масиву, де знаходиться потрібний нам елемент. Пошук починають з першого елементу відрізка. Якщо шукають значення не одно значенням функції в даній точці, то здійснюється перехід до наступної точки. Таким чином, в результаті кожної перевірки область пошуку зменшується на один елемент.
int function LinearSearch (Array A, int L, int R, int Key); begin for X = L to R do if A [X] = Key then return X return -1; // елемент не знайдено end;
Посилання
- C++ Program - Linear Search [ 27 березня 2016 у Wayback Machine.] (англ.)
Це незавершена стаття про алгоритми. Ви можете проєкту, виправивши або дописавши її. |
Ця стаття не містить . (червень 2017) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Linijnij poshuk algoritm poslidovnogo poshuku znahodzhennya zadanogo znachennya dovilnoyi funkciyi na deyakomu yiyi vidrizku Cej algoritm ye najprostishim algoritmom poshuku i na vidminu napriklad vid dvijkovogo poshuku ne nakladaye zhodnih obmezhen na funkciyu i maye prostu realizaciyu Poshuk znachennya funkciyi zdijsnyuyetsya prostim porivnyannyam chergovogo rozglyanutogo znachennya yak pravilo poshuk vidbuvayetsya zliva napravo tobto vid menshih znachen argumentu do bilshih i yaksho znachennya zbigayutsya z tiyeyu abo inshoyu tochnistyu to poshuk vvazhayetsya zavershenim Yaksho vidrizok maye dovzhinu N to znajti rishennya z tochnistyu do ϵ displaystyle epsilon mozhna za chas Nϵ displaystyle N over epsilon Takim chinom asimptomatichna skladnist algoritmu O n displaystyle O n U zv yazku z maloyu efektivnistyu v porivnyanni z inshimi algoritmami linijnij poshuk zazvichaj vikoristovuyut lishe todi koli vidrizok poshukovoyi sistemi mistit duzhe malo elementiv odnak linijnij poshuk ne vimagaye dodatkovoyi pam yati abo obrobki analizu funkciyi tak sho mozhe pracyuvati v potokovomu rezhimi pri bezposerednomu otrimanni danih z bud yakogo dzherela Tak samo linijnij poshuk chasto vikoristovuyetsya u viglyadi linijnih algoritmiv poshuku maksimumu minimumu Yak priklad mozhna rozglyanuti poshuk znachennya funkciyi na mnozhini cilih chisel predstavlenoyi v tablici PrikladZminni L displaystyle L ta R displaystyle R mistyat vidpovidno livu ta pravu granicyu vidrizka masivu de znahoditsya potribnij nam element Poshuk pochinayut z pershogo elementu vidrizka Yaksho shukayut znachennya ne odno znachennyam funkciyi v danij tochci to zdijsnyuyetsya perehid do nastupnoyi tochki Takim chinom v rezultati kozhnoyi perevirki oblast poshuku zmenshuyetsya na odin element int function LinearSearch Array A int L int R int Key begin for X L to R do if A X Key then return X return 1 element ne znajdeno end PosilannyaC Program Linear Search 27 bereznya 2016 u Wayback Machine angl Ce nezavershena stattya pro algoritmi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno cherven 2017