ฉันเคยได้ยินเสมอว่าการค้นหาเชิงเส้นเป็นวิธีที่ไร้เดียงสาและการค้นหาแบบไบนารี่นั้นดีกว่าในด้านประสิทธิภาพเนื่องจากความซับซ้อนเชิงซีมโทติคที่ดีขึ้น แต่ฉันไม่เคยเข้าใจว่าทำไมมันดีกว่าการค้นหาเชิงเส้นเมื่อจำเป็นต้องมีการเรียงลำดับก่อนการค้นหาแบบไบนารี
ค้นหาเชิงเส้นและการค้นหาไบนารีO(n)
O(log n)
นั่นน่าจะเป็นพื้นฐานของการบอกว่าการค้นหาแบบไบนารี่นั้นดีกว่า แต่การค้นหาแบบไบนารี่จำเป็นต้องใช้การเรียงลำดับซึ่งเป็นO(n log n)
วิธีที่ดีที่สุด ดังนั้นการค้นหาแบบไบนารี่จึงไม่ควรเร็วขึ้นตามที่ต้องการ
ฉันกำลังอ่าน CLRS ซึ่งผู้เขียนบอกเป็นนัยว่าในการเรียงลำดับการแทรกแทนที่จะใช้วิธีการค้นหาเชิงเส้นแบบไร้เดียงสาจะเป็นการดีกว่าถ้าใช้การค้นหาแบบไบนารีในการค้นหาสถานที่ที่จะต้องใส่รายการ ในกรณีนี้สิ่งนี้ดูเหมือนว่าจะเป็นธรรมในการวนซ้ำแต่ละครั้งจะมีรายการเรียงลำดับซึ่งสามารถใช้การค้นหาแบบไบนารีได้ แต่ในกรณีทั่วไปที่ไม่มีการรับประกันเกี่ยวกับชุดข้อมูลที่เราต้องการค้นหาไม่ได้ใช้การค้นหาแบบไบนารีที่แย่กว่าการค้นหาแบบเชิงเส้นเนื่องจากความต้องการในการเรียงลำดับ?
มีการพิจารณาในทางปฏิบัติใดบ้างที่ฉันมองเห็นซึ่งทำให้การค้นหาแบบไบนารีดีกว่าการค้นหาแบบเชิงเส้น หรือการค้นหาแบบไบนารี่ถือว่าดีกว่าการค้นหาแบบเชิงเส้นโดยไม่คำนึงถึงเวลาการคำนวณที่จำเป็นสำหรับการเรียงลำดับ?