Агуулгын хүснэгт:
Видео: Та Java дээр хоёртын хайлтын модыг хэрхэн хэрэгжүүлэх вэ?
2024 Зохиолч: Lynn Donovan | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2023-12-15 23:50
Java дээр хоёртын хайлтын модыг (BST) хэрэгжүүлэх
- Зангилааны зүүн дэд мод нь зөвхөн зангилааны түлхүүрээс бага түлхүүртэй зангилаануудыг агуулна.
- Зангилааны баруун дэд мод нь зөвхөн зангилааны түлхүүрээс их түлхүүртэй зангилаануудыг агуулна.
- Зүүн ба баруун дэд мод тус бүр нь мөн байх ёстой хоёртын хайлтын мод .
- Давхардсан зангилаа байх ёсгүй.
Мөн Java дээр хоёртын хайлт хэрхэн хэрэгждэг вэ гэсэн асуулт гарч ирнэ.
Бид рекурс ашиглан массиваас элемент хайх гэж буй java дахь хоёртын хайлтын жишээг харцгаая
- анги BinarySearchExample1{
- нийтийн статик int binarySearch(int arr, int эхний, int сүүлчийн, int түлхүүр){
- хэрэв (сүүлийн>=эхний){
- int mid = эхний + (сүүлийн - эхний)/2;
- хэрэв (arr[mid] == түлхүүр){
- дунд буцах;
- }
Хоёрдугаарт, бид хоёртын хайлтын модыг хаана ашигладаг вэ? Хоёртын хайлтын мод - Ашигласан олонд хайх Олон хэлний номын сан дахь газрын зураг, багц объект зэрэг өгөгдөл байнга орж/гардаг програмууд. Хоёртын Сансрын хуваалт - Ашигласан бараг бүх 3D видео тоглоомонд ямар объектыг дүрслэх шаардлагатайг тодорхойлох.
Тэгэхээр, хоёртын мод хэрхэн үүсдэг вэ?
Рекурс ашиглан хоёртын мод үүсгэх
- x дахь өгөгдлийг уншина уу.
- Шинэ зангилаанд санах ойг хуваарилж, хаягийг заагч p дээр хадгална.
- р зангилаанд х өгөгдлийг хадгална.
- p-ийн зүүн дэд модыг давталттайгаар үүсгэж, p-ийн зүүн хүүхэд болго.
- Рекурсив байдлаар p-ийн зөв дэд модыг үүсгэж, p-ийн зөв хүүхэд болго.
Хоёртын хайлтын нарийн төвөгтэй байдал гэж юу вэ?
Хоёртын хайлт нь хамгийн муу логарифмын хугацаанд ажилладаг бөгөөд O(log n) харьцуулалт хийх ба энд n нь массив дахь элементийн тоо, O нь Big O тэмдэглэгээ, log нь логарифм юм. Хоёртын хайлт тогтмол (O(1)) зай эзэлдэг бөгөөд энэ нь алгоритмын авсан зай массивын аль ч тооны элементийн хувьд ижил байна гэсэн үг.
Зөвлөмж болгож буй:
Хоёртын хайлтын дундыг хэрхэн олох вэ?
Эрэмбэлэгдсэн массив өгөгдсөн бол бид хамгийн дундах элементийг олж, элементийг түлхүүрээр шалгана. Хэрэв хамгийн дунд элемент нь түлхүүртэй тэнцүү бол бид түлхүүрийг олсон. Хэрэв хамгийн дунд хэсгийн элемент нь түлхүүрээс их байвал бид хамгийн дунд хэсгийн элементийн зүүн талыг хайна, үгүй бол баруун талыг хайна
Хоёртын хайлтын рекурс хийх үү?
Хоёртын хайлт нь хуваах ба ялах алгоритм юм. Бүх хуваах ба ялах алгоритмуудын нэгэн адил Хоёртын хайлт нь эхлээд том массивыг хоёр жижиг дэд массив болгон хувааж, дараа нь дэд массивуудыг рекурсив (эсвэл давталтаар) ажиллуулдаг. Тиймээс хоёртын хайлт нь алхам бүрт хайлтын зайг хагас болгон бууруулдаг
Python дээр шийдвэрийн модыг хэрхэн хэрэгжүүлэх вэ?
Шийдвэрийн модыг хэрэгжүүлэхдээ бид дараах хоёр үе шатыг дамждаг: Барилгын үе шат. Өгөгдлийн багцыг урьдчилан боловсруулах. Датасетийг галт тэрэгнээс хувааж, Python sklearn багцыг ашиглан туршина уу. Ангилагчийг сургах. Үйл ажиллагааны үе шат. Урьдчилан таамаг дэвшүүл. Нарийвчлалыг тооцоол
Хоёртын хайлтын модны хамгийн муу тохиолдол ба дундаж тохиолдлын нарийн төвөгтэй байдал юу вэ?
Хоёртын хайлтын мод Алгоритм Дундаж Хамгийн муу тохиолдол Зай O(n) O(n) Хайх O(log n) O(n) Insert O(log n) O(n) Устгах O(log n) O(n)
Хоёртын хайлтын том O гэж юу вэ?
Хоёртын хайлт нь жижиг массивуудаас бусад тохиолдолд шугаман хайлтаас хурдан байдаг. Хоёртын хайлтын алгоритм. Хоёртын хайлтын алгоритмын дүрслэл 7 нь зорилтот утга Анги Хайлтын алгоритм Шилдэг тохиолдол O(1) Дундаж гүйцэтгэл O(log n) Хамгийн муу орон зайн нарийн төвөгтэй байдал O(1)