Хоёртын хайлтын том O гэж юу вэ?
Хоёртын хайлтын том O гэж юу вэ?

Видео: Хоёртын хайлтын том O гэж юу вэ?

Видео: Хоёртын хайлтын том O гэж юу вэ?
Видео: Хоёртын хайлтын хялбар арга | Анхан шат 2024, May
Anonim

Хоёртын хайлт шугаманхаас хурдан байдаг хайх жижиг массивуудаас бусад.

Хоёртын хайлт алгоритм.

Дүрслэл хоёртын хайлт алгоритм нь 7 нь зорилтот утга юм
Анги Хайх алгоритм
Хамгийн сайн гүйцэтгэл О (1)
Дундаж гүйцэтгэл О (лог n)
Хамгийн муу тохиолдолд сансрын нарийн төвөгтэй байдал О (1)

Эндээс харахад хоёртын хайлтын нарийн төвөгтэй байдал юу вэ?

Хоёртын хайлт нь хамгийн муу логарифмын хугацаанд ажилладаг бөгөөд O(log n) харьцуулалт хийх ба энд n нь массив дахь элементийн тоо, O нь Big O тэмдэглэгээ, log нь логарифм юм. Хоёртын хайлт тогтмол (O(1)) зай эзэлдэг бөгөөд энэ нь алгоритмын авсан зай массивын аль ч тооны элементийн хувьд ижил байна гэсэн үг.

Нэмж дурдахад, хоёртын хайлт хамгийн хурдан мөн үү? Тийм, үгүй. Тиймээ байдаг хайлтууд Энэ нь дунджаар хоёр хэсгээс илүү хурдан байдаг хайх . Гэхдээ тэдгээр нь бага тогтмолтой O(lg N) хэвээр байгаа гэдэгт би итгэдэг. Та өөрийн элементийг олоход зарцуулсан цагийг багасгахыг хүсч байна.

Үүнтэй адилаар та хоёртын хайлтыг хэрхэн бичих вэ?

Хоёртын хайлт : Хайх дахин дахин хуваах замаар эрэмбэлэгдсэн массив хайх хагас дахь интервал. Бүх массивыг хамарсан интервалаар эхэл. Хэрэв үнэ цэнэ нь хайх түлхүүр нь интервалын дунд байгаа зүйлээс бага, доод тал хүртэл интервалыг нарийсгана. Үгүй бол дээд тал руу нь нарийсгана.

Хоёртын хайлтын цаг хугацааны нарийн төвөгтэй байдал гэж юу вэ?

Тэгэхээр алгоритмын үзүүлж буй зан үйлийн төрөл байх ёстой нарийн төвөгтэй байдал бүртгэлийн n. Энэ нь хэрхэн ажилладагийг харцгаая. Түүнээс хойш хоёртын хайлт нь O(1)-ийн хамгийн сайн үр ашиг ба O(log n)-ийн хамгийн муу тохиолдол (дундаж) үр ашигтай байвал бид хамгийн муу тохиолдлын жишээг авч үзэх болно. 16 элементийн эрэмбэлэгдсэн массивыг авч үзье.

Зөвлөмж болгож буй: