Олон асуудлыг шийдвэрлэх алгоритм боловсруулахдаа тодорхой бүлгийн өгөгдлийг заасан шалгуурын дагуу хайхад бэрхшээл тулгардаг. Захиалгат эсвэл дараалалгүй дарааллыг судлахдаа хайлтыг янз бүрийн аргаар хийж болно. Ерөнхий тохиолдолд хайлтын асуудлыг шийдвэрлэхийн тулд өгөгдсөн элементийг олох шаардлагатай өгөгдлийн тодорхой массивыг авч үздэг.
Зааварчилгаа
1-р алхам
Мэдээллийн массив дахь мэдэгдэж байгаа элементийг олох хамгийн хялбар арга бол түүний утгыг давтах явдал юм. Энэ алгоритм нь бага хэмжээний мэдээллийн хувьд оновчтой байдаг. Үүний мөн чанар нь мэдэгдэж буй өгөгдлийн дарааллыг (массив) дайрч, элемент бүрийг хүссэн утгатай харьцуулах явдал юм. Тохирсон шалгуураас хамааран таарч тохирох зүйл олдсон тохиолдолд хайлтыг массивын төгсгөлд хүртэл хийж болно.
Алхам 2
Гэсэн хэдий ч энэхүү аргыг хэрэгжүүлэхэд хялбар хэдий ч алгоритмын нөөцийн эрч хүчийг ихээхэн нэмэгдүүлдэг тул үүнийг их хэмжээний мэдээлэл агуулсан массивуудад ашиглах нь зохисгүй юм. Энэ тохиолдолд хайлтыг оновчтой болгохын тулд массив дахь утгуудыг урьдчилан эрэмбэлж, хайлтын алгоритмуудыг хэрэгжүүлэх нь илүү дээр юм: хоёртын модоор, Фибоначчийн модоор, экстраполяцийн аргаар.
Алхам 3
Захиалгат массивтай ажиллахдаа илүү үр дүнтэй алгоритм - хоёртын хайлтын аргыг ашигла. Үүний мөн чанар нь интервалын хил хязгаарыг тоолох явцад бие биендээ ойртож, улмаар хайлтын талбарыг нарийсгаж байгаа явдал юм. Хайж буй утгыг массивын дугаарлагдсан элементтэй харьцуул. Хэрэв түүвэр нь элементтэй таарч байвал асуудлыг шийдсэн гэж үзнэ. Хэрэв хүссэн зүйл нь дунд элементээс их байвал цааш хайлтыг дунд элементийн баруун талд байрлах (массивын эхнээс дунд элемент-1 хүртэл) массивын хэсэгт хийх шаардлагатай. Хэрэв хайлт нь дунд элементээс бага бол массивын дундаас сүүлчийн элемент хүртэл хайлт үргэлжилнэ. Хайлтын шинэ талбарыг тодорхойлсны дараа тодорхойлсон алгоритмыг давтаж, таарч тохирохыг тодорхойлж, эсвэл боловсруулалтын талбарыг нарийсгаж байна. Энэ схем нь буурах массивын хувьд зөв юм.
Алхам 4
Өгөгдсөн дарааллын дагуу хамгийн бага буюу хамгийн их элементийг олоход тулгарч буй асуудлуудыг эхний элементийг хүссэн элементээр тохируулж шийддэг. Дараа нь массивын үлдсэн утгуудын дараалсан тооллогыг хийнэ: хоёр дахь нь эхнийхтэй, гурав дахь нь эхнийхтэй гэх мэт. Стандарт байдлаар авсан утгыг харьцуулахдаа тухайн нөхцөлд (хамгийн бага эсвэл хамгийн их) тохирсон массивт элемент байгаа эсэх нь тодорхой болно. Нэг нь олдсон тохиолдолд үүнийг аль хэдийн стандарт болгон авсан бөгөөд тооллого нь одоогийн байрлалаас массивын төгсгөл хүртэл үргэлжилнэ. Үүний үр дүнд энэ бүлгийн хамгийн бага (эсвэл хамгийн их) утга нь хамгийн сүүлд стандарт гэж хүлээн зөвшөөрөгдсөн элемент юм.