2025 Зохиолч: Lynn Donovan | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-22 17:34
Хоёртын хайлт шугаманхаас хурдан байдаг хайх жижиг массивуудаас бусад.
Хоёртын хайлт алгоритм.
Дүрслэл хоёртын хайлт алгоритм нь 7 нь зорилтот утга юм | |
---|---|
Анги | Хайх алгоритм |
Хамгийн сайн гүйцэтгэл | О (1) |
Дундаж гүйцэтгэл | О (лог n) |
Хамгийн муу тохиолдолд сансрын нарийн төвөгтэй байдал | О (1) |
Эндээс харахад хоёртын хайлтын нарийн төвөгтэй байдал юу вэ?
Хоёртын хайлт нь хамгийн муу логарифмын хугацаанд ажилладаг бөгөөд O(log n) харьцуулалт хийх ба энд n нь массив дахь элементийн тоо, O нь Big O тэмдэглэгээ, log нь логарифм юм. Хоёртын хайлт тогтмол (O(1)) зай эзэлдэг бөгөөд энэ нь алгоритмын авсан зай массивын аль ч тооны элементийн хувьд ижил байна гэсэн үг.
Нэмж дурдахад, хоёртын хайлт хамгийн хурдан мөн үү? Тийм, үгүй. Тиймээ байдаг хайлтууд Энэ нь дунджаар хоёр хэсгээс илүү хурдан байдаг хайх . Гэхдээ тэдгээр нь бага тогтмолтой O(lg N) хэвээр байгаа гэдэгт би итгэдэг. Та өөрийн элементийг олоход зарцуулсан цагийг багасгахыг хүсч байна.
Үүнтэй адилаар та хоёртын хайлтыг хэрхэн бичих вэ?
Хоёртын хайлт : Хайх дахин дахин хуваах замаар эрэмбэлэгдсэн массив хайх хагас дахь интервал. Бүх массивыг хамарсан интервалаар эхэл. Хэрэв үнэ цэнэ нь хайх түлхүүр нь интервалын дунд байгаа зүйлээс бага, доод тал хүртэл интервалыг нарийсгана. Үгүй бол дээд тал руу нь нарийсгана.
Хоёртын хайлтын цаг хугацааны нарийн төвөгтэй байдал гэж юу вэ?
Тэгэхээр алгоритмын үзүүлж буй зан үйлийн төрөл байх ёстой нарийн төвөгтэй байдал бүртгэлийн n. Энэ нь хэрхэн ажилладагийг харцгаая. Түүнээс хойш хоёртын хайлт нь O(1)-ийн хамгийн сайн үр ашиг ба O(log n)-ийн хамгийн муу тохиолдол (дундаж) үр ашигтай байвал бид хамгийн муу тохиолдлын жишээг авч үзэх болно. 16 элементийн эрэмбэлэгдсэн массивыг авч үзье.
Зөвлөмж болгож буй:
Бусад хайлтын системийг хайдаг хайлтын систем гэж юу вэ?
Хайлтын адал явдлаа эхлүүлэхийн тулд эхний гурваас бусад ерөнхий хайлтын системийг харцгаая. DuckDuckGo. Онлайн нууцлалын талаар санаа зовж байна уу? Шифрлэх. DuckDuckGo-н өөр хувилбар хайж байна уу? Экосиа. Та хайж байхдаа мод тарьмаар байна уу? Нохой. Блекко. ВолфрамАльфа. Гигабласт. Facebook хайлт
Хоёртын хайлтын дундыг хэрхэн олох вэ?
Эрэмбэлэгдсэн массив өгөгдсөн бол бид хамгийн дундах элементийг олж, элементийг түлхүүрээр шалгана. Хэрэв хамгийн дунд элемент нь түлхүүртэй тэнцүү бол бид түлхүүрийг олсон. Хэрэв хамгийн дунд хэсгийн элемент нь түлхүүрээс их байвал бид хамгийн дунд хэсгийн элементийн зүүн талыг хайна, үгүй бол баруун талыг хайна
Хоёртын хайлтын рекурс хийх үү?
Хоёртын хайлт нь хуваах ба ялах алгоритм юм. Бүх хуваах ба ялах алгоритмуудын нэгэн адил Хоёртын хайлт нь эхлээд том массивыг хоёр жижиг дэд массив болгон хувааж, дараа нь дэд массивуудыг рекурсив (эсвэл давталтаар) ажиллуулдаг. Тиймээс хоёртын хайлт нь алхам бүрт хайлтын зайг хагас болгон бууруулдаг
Та Java дээр хоёртын хайлтын модыг хэрхэн хэрэгжүүлэх вэ?
Java-д хоёртын хайлтын мод (BST)-ийг хэрэгжүүлэх нь Зангилааны зүүн дэд мод нь зөвхөн зангилааны түлхүүрээс бага түлхүүртэй зангилаануудыг агуулна. Зангилааны баруун дэд мод нь зөвхөн зангилааны түлхүүрээс их түлхүүртэй зангилаануудыг агуулна. Зүүн ба баруун дэд мод тус бүр нь хоёртын хайлтын мод байх ёстой. Давхардсан зангилаа байх ёсгүй
Хоёртын хайлтын модны хамгийн муу тохиолдол ба дундаж тохиолдлын нарийн төвөгтэй байдал юу вэ?
Хоёртын хайлтын мод Алгоритм Дундаж Хамгийн муу тохиолдол Зай O(n) O(n) Хайх O(log n) O(n) Insert O(log n) O(n) Устгах O(log n) O(n)