นี่คือปัญหาเพื่อนบ้านที่ใกล้ที่สุด
รับ reals (ใหญ่มากn !), รวมทั้งเป้าหมายจริงp , หาa_iและa_jซึ่ง SUM ใกล้เคียงกับpมากที่สุด เราอนุญาตการประมวลผลล่วงหน้า / การจัดทำดัชนีที่เหมาะสมของa_1, \ ldots, a_n (ไม่เกินO (n \ log n) ) แต่ในเวลาแบบสอบถาม (ที่กำหนดp ) ผลลัพธ์ควรถูกส่งคืนอย่างรวดเร็ว (เช่นO (\ log n)เวลา)
(ตัวอย่างง่ายกว่า: ถ้าเราต้องการเพียงa_iเดียวที่ใกล้เคียงกับมากที่สุดเราจะจัดเรียงออฟไลน์, จากนั้นทำการค้นหาแบบไบนารีที่เวลาสอบถาม )
โซลูชันที่ไม่ทำงาน:
1) จัดเรียงออฟไลน์จากนั้นในเวลาสอบถามเริ่มต้นจากปลายทั้งสองและย้ายตัวชี้สองตัวเข้าด้านใน ( http://bit.ly/1eKHHDy ) ไม่ดีเนื่องจากเวลาสอบถาม
2) เรียงออฟไลน์จากนั้นในเวลาแบบสอบถามใช้เวลาในแต่ละและดำเนินการค้นหาแบบไบนารีสำหรับ "เพื่อน" ที่จะช่วยให้มันรวมกับสิ่งที่ใกล้เคียงกับพีไม่ดีเนื่องจากเวลาสอบถาม
3) จัดเรียงคู่ทั้งหมดออฟไลน์จากนั้นทำการค้นหาแบบไบนารี ไม่ดีเพราะการประมวลผลล่วงหน้า
ขอบคุณ!
PS การวางหลักเกณฑ์ทั่วไปเพิ่มเติมที่จำเป็นสำหรับการปฏิบัติ: (1)และเป็นเวกเตอร์ 50 มิติ, (2) "ปิด" เพื่อเป็นระยะทางโคไซน์โคไซน์และ (3) -bestest ไม่ใช่แค่ 1-best