You are on page 1of 21

СОУ Гимназија „Добри Даскалов“

Бинарно пребарување и негова сложеност

Програмски јазици за IV година


Предметен наставник: м-р Зоран Милевски
Алгоритми за пребарување

✓ 1 Потсетување за алгоритми

2 Потсетување за линеарно пребарување

3 Сложеност на линеарно пребарување

4 Бинарно пребарување

5 Сложеност на бинарно пребарување

6 Заклучок

м-р Зоран Милевски


Потетување

1 Што е тоа 2
Сложеност на 3 Ефикаснот на
алгоритам? алгоритми? алгоритмите
според
Временска временската
сложеност сложеност?!
наспроти
просторна Кога
сложеност! сложеноста е
О(1), а кога
О(n)

м-р Зоран Милевски


Алгоритми за пребарување

Линеарно пребарување Бинарно пребарување

Карактеристики: - Карактеристики:
Using
1 2
- Клуч за пребарување
- Ги поминува сите елементи за да
провери дали постои бараната

?
вредност
- Доколку постои ја враќа
локацијата на елементот во
низата
- Доколку не постои враќа порака
дека нема таков елемент
- Едноставен е, има поголема
сложеност
- Помалку ефикасен од алгоритмот
за бинарно пребарување

м-р Зоран Милевски


Линеарно пребарување – сложеност?

• Сложеноста е О(1) кога • Колкава е сложеноста кога


сакаме да провериме дали сакаме да провериме дали
првиот елемент во низата е првиот елемент во низата е
еднаков на вториот еднаков на било кој од
елемент во низата! следните три елементи во
низата?
• Колку споредби имаме во
овој случај? • Сеуште е О(1)
• (една)

м-р Зоран Милевски


Линеарно пребарување – сложеност (2)

• Колкава е сложеноста кога • Колкава е сложеноста кога


сакаме да провериме дали сакаме да провериме дали
првиот елемент во низата е било кој елемент во низата е
еднаков на било кој дупликат со некој друг елемент
елемент во низата? од низата?

• Сложеноста е О(n) • Сложеноста е О(n2)


• Зошто? • Зошто?

м-р Зоран Милевски


Пред да продолжиме!!!

НИЗА ВЕКТОР

Карактеристики: - Карактеристики:
Using
1 2

НИЗА ВЕКТОР
(англ. array) (англ. vector)

м-р Зоран Милевски


Бинарно пребарување

• Алгоритамот за бинарно пребарување е поефикасен од


алгоритамот за линеарно пребарување, но побарува пред да
започне процесот на пребарување елементите во низата да
бидат сортирани!
• Постапка: Првата итерација (поминување на елементите во
низата) го тестира средниот елемент во низата.
• Ако средниот елемент во низата е ист со пребарувачкиот клуч
тогаш алагоритамот завршува!
• Нека претпоставиме дека низата е сортирана по растечки
редослед....

м-р Зоран Милевски


Бинарно пребарување (2)

• ... тогаш ако пребарувачкиот клуч е помал од средниот елемент,


пребарувачкиот клуч сигурно нема да се совпадне со некој
елемент што се наоѓа во втората половина на низата, па
алгоритамот продолжува само со првата половина (Дали со тоа
двојно се намалува времето на пребарување?)

• ако пребарувачкиот клуч е поголем од средниот елемент,


пребарувачкиот клуч сигурно нема да се совпадне со некој
елемент што се наоѓа во првата половина на низата, па
алгоритамот продолжува само со втората половина (Дали со
тоа двојно се намалува времето на пребарување?)
м-р Зоран Милевски
м-р Зоран Милевски
м-р Зоран Милевски
м-р Зоран Милевски
м-р Зоран Милевски
м-р Зоран Милевски
м-р Зоран Милевски
Сложеност за n елементи
м-р Зоран Милевски
м-р Зоран Милевски
м-р Зоран Милевски
Заклучок
Бинарното пребарување се однесува на раздели па владеј стратегија

На тој начин ја наоѓа вредноста во претходно сортираната низа

Бинарното пребарување го споредува влезот со средниот елемент во низата

Со тоа одредува дали вредноста на внесениот елементот за пребарување е


помал или поголем од него

Вредноста што ја враќа е позицијата на елементот во низата

Комплексност: Во нормален или најлош сличај O(log n)


Во најдобар случај O(1)

м-р Зоран Милевски


Дали имате прашања?

м-р Зоран Милевски

You might also like