ในขณะที่ทำรหัสกะตะที่สอง(ซึ่งขอให้คุณใช้อัลกอริทึมการค้นหาแบบไบนารีห้าครั้งแต่ละครั้งด้วยวิธีการที่แตกต่างกัน) ฉันได้มากับโซลูชันที่แตกต่างกันเล็กน้อยซึ่งทำงานดังนี้:
หากฉันมีอาร์เรย์ที่เรียงลำดับความยาว 100 และฉันเห็นว่าเขตข้อมูลเริ่มต้นมีหมายเลข 200 และเขตข้อมูลสิ้นสุดประกอบด้วยหมายเลข 400 ฉันในฐานะคณิตศาสตร์ที่เรียนรู้มนุษย์น่าจะเริ่มค้นหารอบ ๆ เขต 35 ถ้าฉันกำลังค้นหา หมายเลข 270 และไม่ใช่ฟิลด์ 50 เหมือนในอัลกอริธึมการค้นหาไบนารีปกติ
จากนั้นถ้าตัวเลขในฟิลด์ 35 ของอาร์เรย์คือ 270, 35 คือดัชนีที่ฉันค้นหา
หากไม่ใช่กรณีที่ฉันสามารถเปรียบเทียบจำนวนที่ฉันได้รับ (พูด 280) และทำซ้ำการดำเนินการโดยใช้ส่วนล่างของอาร์เรย์ (ดังนั้นฉันจึงมี 35 ฟิลด์กับเขตข้อมูลเริ่มต้นที่มี 200 และเขตสิ้นสุดที่มี 280) ถ้า จำนวนที่ฉันค้นพบมีค่ามากกว่าสิ่งที่ฉันค้นหาหรือส่วนบนของอาร์เรย์ (บอกว่าฉันได้ 260: ตอนนี้ฉันมีดัชนี 65 ตัว, อันแรกที่มี 260 และอันสุดท้ายที่มี 400 ในแนวตั้งฉันจะมุ่งหน้าแบบ Torward ดัชนี 4 ของอาร์เรย์ย่อยนี้ซึ่งเป็นดัชนี 39 ของอาร์เรย์ทั้งหมด) หากจำนวนที่ฉันได้รับมีขนาดเล็กกว่าจำนวนที่ฉันกำลังค้นหา
คำถามคือ: อัลกอริทึมนี้สามารถพิจารณาเป็นอัลกอริทึมการค้นหาแบบไบนารีหรือไม่? ถ้าไม่มันมีชื่อเป็นของตัวเอง?