Хоёртын хайлтын рекурс хийх үү?
Хоёртын хайлтын рекурс хийх үү?

Видео: Хоёртын хайлтын рекурс хийх үү?

Видео: Хоёртын хайлтын рекурс хийх үү?
Видео: Equipment Corner - Steppers 2024, Арваннэгдүгээр
Anonim

Хоёртын хайлт нь хуваах ба ялах алгоритм. Бүх хуваах ба ялах алгоритмуудын нэгэн адил, Хоёртын хайлт эхлээд том массивыг хоёр жижиг дэд массив болгон хувааж, дараа нь рекурсив байдлаар (эсвэл давтагдах байдлаар) дэд массивуудыг ажиллуулна. Тэгэхээр Хоёртын хайлт үндсэндээ бууруулдаг хайх алхам бүрт хагас хүртэл зай.

Үүнтэй адилаар хоёртын рекурс гэж юу вэ?

Хоёртын рекурс хоёр байх бүрт тохиолддог рекурсив үндсэн бус тохиолдол бүрийн дуудлага. Жишээ нь А бүхэл массив дахь бүх тоог нэмэх асуудал юм.

Үүний нэгэн адил, DAA дахь хоёртын хайлт гэж юу вэ? Хоёртын хайлт хурдан юм хайх Ο(log n)-ийн ажиллах цагийн нарийн төвөгтэй алгоритм. Энэхүү алгоритмыг зөв ажиллуулахын тулд өгөгдөл цуглуулга нь эрэмбэлэгдсэн хэлбэрээр байх ёстой. Хоёртын хайлт Цуглуулгын хамгийн дунд хэсгийг харьцуулж тодорхой зүйлийг хайж олдог.

Үүний нэгэн адил, хоёртын хайлт нь хуваагдаж, ялах уу?

The Хоёртын хайлт нь хувааж, байлдан дагуулах алгоритм: 1) In Хувааж, ял алгоритмын хувьд бид жижиг дэд асуудлыг шийдэх замаар асуудлыг шийдэхийг оролддог ( Хуваах хэсэг) мөн бидний хамгийн том асуудлын шийдлийг бий болгохын тулд шийдлийг ашигла ( Эзлэх ). Үүнтэй төстэй дэд асуудлыг шийдэх замаар бид үүнийг шийдэж чадна.

Рекурсив хоёртын хайлт дахь зогсоох нөхцөл юу вэ?

The хоёртын хайлт ашиглан алгоритмыг тодорхой зааж өгч болно рекурс . The зогсох тохиолдлууд нь: Массив ямар ч элементгүй байх болно (Slice'First>Slice'Last эсвэл Slice'Length=0). Дундаж утга нь зорилтот утга юм.

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