Та холбосон жагсаалтаас хоёртын хувилбараар хайлт хийж чадах уу?
Та холбосон жагсаалтаас хоёртын хувилбараар хайлт хийж чадах уу?

Видео: Та холбосон жагсаалтаас хоёртын хувилбараар хайлт хийж чадах уу?

Видео: Та холбосон жагсаалтаас хоёртын хувилбараар хайлт хийж чадах уу?
Видео: Холбоостой жагсаалт дахь хоёртын хайлт | Хоёртын хайлтын алгоритмын бүрэн тайлбар 2024, May
Anonim

Тиймээ Хоёртын хайлт дээр боломжтой холбогдсон жагсаалт бол нь жагсаалт захиалсан ба Та доторх элементүүдийн тоог мэддэг жагсаалт . Гэхдээ эрэмбэлэх явцад жагсаалт , чи чадна тухайн зангилаа руу заагчаар дамжуулан нэг элементэд хандах, өөрөөр хэлбэл өмнөх зангилаа эсвэл дараагийн зангилаа.

Тэгэхээр, хоёртын хайлтыг холбосон жагсаалтад ашиглах үед цаг хугацааны нарийн төвөгтэй байдал ямар байх вэ?

Цагийн нарийн төвөгтэй байдал O(log n) -ээс их байж болохгүй. гэх мэт холбосон жагсаалт хийдэг Хэрэв бид оролдвол санамсаргүй хандалт өгөхгүй хоёртын хайлтыг ашиглах үүнийг алгоритм болно шаардлагатай бол O(n) хүрэх олох -ийн урт жагсаалт тэгээд дунд нь оч.

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

Жагсаалтын элементийг олохын тулд хоёртын хайлт ямар аргыг ашигладаг вэ?

Хоёртын хайлт эрэмбэлэгдсэн массивууд дээр ажилладаг. Хоёртын хайлт -ийг харьцуулж эхэлдэг бүрэлдэхүүн зорилттой массивын дунд үнэ цэнэ . Хэрэв зорилтот бол үнэ цэнэ -тай таарч байна бүрэлдэхүүн , массив дахь түүний байрлалыг буцаана. Хэрэв зорилтот бол үнэ цэнэ -аас бага байна бүрэлдэхүүн , the хайх массивын доод хагаст үргэлжилнэ.

Та холбосон жагсаалтыг хэрхэн давтах вэ?

Ан Давтагч гогцоонд ашиглаж болно дамжуулан а LinkedList . Хэрэв илүү олон элемент байвал hasNext() арга үнэнийг буцаана LinkedList ба бусад тохиолдолд худал. next() арга нь дараагийн элементийг буцаана LinkedList дараагийн элемент байхгүй бол NoSuchElementException үл хамаарах зүйлийг шиддэг.

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