การค้นหาเชิงเส้นกับการค้นหาแบบไบนารี

ผู้เขียน: Laura McKinney
วันที่สร้าง: 4 เมษายน 2021
วันที่อัปเดต: 10 พฤษภาคม 2024
Anonim
อัลกอริทึม การค้นหาข้อมูลแบบไบนารี (Binary Search)
วิดีโอ: อัลกอริทึม การค้นหาข้อมูลแบบไบนารี (Binary Search)

เนื้อหา

ความแตกต่างระหว่างการค้นหาเชิงเส้นและการค้นหาแบบไบนารีคือในการค้นหาเชิงเส้นแต่ละองค์ประกอบจะถูกตรวจสอบและเปรียบเทียบแล้วจัดเรียงในขณะที่ในการค้นหาแบบไบนารีรายการที่จะเรียงลำดับจะถูกแบ่งออกเป็นสองส่วนแล้วจัดเรียง การค้นหาและการเรียงลำดับเป็นแนวคิดหลักสองประการในการเขียนโปรแกรมคอมพิวเตอร์ อัลกอริทึมจำนวนมากใช้สำหรับการค้นหาและการเรียงลำดับ แต่อัลกอริทึมที่ใช้มากที่สุดสองอย่างสำหรับการค้นหาและการเรียงลำดับคือการค้นหาเชิงเส้นและการค้นหาแบบไบนารี


ความแตกต่างระหว่างการค้นหาเชิงเส้นและการค้นหาแบบไบนารีคือการทำงานและประสิทธิภาพของอัลกอริทึมทั้งสอง การค้นหาแบบไบนารี่เป็นอัลกอริทึมที่มีประสิทธิภาพมากกว่าเมื่อเปรียบเทียบกับอัลกอริธึมการค้นหาแบบเชิงเส้น การวนซ้ำหรือเวลาที่ใช้ในการเปรียบเทียบแต่ละค่าก่อนการเรียงลำดับจะน้อยกว่าในการค้นหาแบบไบนารีเมื่อเปรียบเทียบกับการค้นหาแบบเชิงเส้น

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


เมื่อเปรียบเทียบกับการค้นหาเชิงเส้นการค้นหาแบบไบนารี่นั้นมีประสิทธิภาพมาก ในวิธีนี้อาเรย์จะแบ่งออกเป็นสองส่วนและด้วยวิธีการเปรียบเทียบจำนวนนี้มีน้อยมากเมื่อเทียบกับการค้นหาแบบไบนารี่ เวลายังน้อยในการค้นหาแบบไบนารีเมื่อเปรียบเทียบกับการค้นหาแบบเชิงเส้น การค้นหาแบบไบนารี่ทำงานในลักษณะที่พบองค์ประกอบกลางของอาเรย์แล้วองค์ประกอบกลางจะถูกเปรียบเทียบกับส่วนหนึ่งของอาเรย์ อาจมีความเป็นไปได้สามอย่างที่เป็นหมายเลขกลางสามารถเป็นหมายเลขที่เราต้องการค้นหาหรือจำนวนที่น้อยกว่าจำนวนกลางหรือจำนวนที่มากกว่าจำนวนกลาง จำนวนการเปรียบเทียบคือมากที่สุดบันทึก (N + 1) การค้นหาแบบไบนารี่เมื่อเทียบกับการค้นหาแบบเชิงเส้นเป็นอัลกอริทึมที่มีประสิทธิภาพเมื่อเปรียบเทียบกับการค้นหาแบบเชิงเส้น แต่อาร์เรย์จะต้องมีการเรียงลำดับก่อนทำการค้นหาแบบไบนารี

สารบัญ: ความแตกต่างระหว่างการค้นหาเชิงเส้นและการค้นหาแบบไบนารี

  • แผนภูมิเปรียบเทียบ
  • ค้นหาแบบทวิภาค
  • ความแตกต่างที่สำคัญ
  • ข้อสรุป
  • วิดีโออธิบาย

แผนภูมิเปรียบเทียบ

รากฐานการค้นหาเชิงเส้นค้นหาแบบทวิภาค
ความหมายค้นหาเชิงเส้นแต่ละองค์ประกอบมีการตรวจสอบและเปรียบเทียบแล้วเรียงลำดับ

การค้นหาแบบไบนารีรายการที่จะเรียงถูกแบ่งออกเป็นสองส่วนแล้วเรียงลำดับ


 

ความซับซ้อนของเวลาความซับซ้อนของเวลาในการค้นหาเชิงเส้นคือ O (N)ความซับซ้อนของเวลาในการค้นหาแบบไบนารีคือ O (บันทึก 2 N)
ประเภทอัลกอริทึมการค้นหาเชิงเส้นซ้ำ ๆการค้นหาแบบไบนารีเป็นการแบ่งและพิชิต
บรรทัดของรหัสในการค้นหาเชิงเส้นเราจำเป็นต้องเขียนโค้ดเพิ่มเติมในการค้นหาแบบไบนารีเราจำเป็นต้องเขียนโค้ดให้น้อยลง

การค้นหาเชิงเส้น

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

ค้นหาแบบทวิภาค

เมื่อเปรียบเทียบกับการค้นหาเชิงเส้นการค้นหาแบบไบนารี่นั้นมีประสิทธิภาพมาก ในวิธีนี้อาเรย์จะแบ่งออกเป็นสองส่วนและด้วยวิธีการเปรียบเทียบจำนวนนี้มีน้อยมากเมื่อเทียบกับการค้นหาแบบไบนารี่ เวลายังน้อยในการค้นหาแบบไบนารีเมื่อเปรียบเทียบกับการค้นหาแบบเชิงเส้น การค้นหาแบบไบนารี่ทำงานในลักษณะที่พบว่าอิลิเมนต์กลางของอาเรย์แล้วอิลิเมนต์กลางจะถูกเปรียบเทียบกับส่วนหนึ่งของอาเรย์

อาจมีความเป็นไปได้สามอย่างที่เป็นหมายเลขกลางสามารถเป็นหมายเลขที่เราต้องการค้นหาหรือจำนวนที่น้อยกว่าจำนวนกลางหรือจำนวนที่มากกว่าจำนวนกลาง จำนวนการเปรียบเทียบคือมากที่สุดบันทึก (N + 1) การค้นหาแบบไบนารี่เมื่อเทียบกับการค้นหาแบบเชิงเส้นเป็นอัลกอริทึมที่มีประสิทธิภาพเมื่อเปรียบเทียบกับการค้นหาแบบเชิงเส้น แต่อาร์เรย์จะต้องมีการเรียงลำดับก่อนทำการค้นหาแบบไบนารี

ความแตกต่างที่สำคัญ

  1. การค้นหาเชิงเส้นแต่ละองค์ประกอบจะถูกตรวจสอบและเปรียบเทียบแล้วจัดเรียงในขณะที่การค้นหาแบบไบนารีรายการที่จะเรียงจะถูกแบ่งออกเป็นสองส่วนแล้วจัดเรียง
  2. ความซับซ้อนของเวลาของการค้นหาเชิงเส้นคือ 0 (N) ในขณะที่ความซับซ้อนของเวลาในการค้นหาแบบไบนารีคือ O (บันทึก2N)
  3. การค้นหาเชิงเส้นซ้ำในขณะที่การค้นหาแบบไบนารีเป็นการแบ่งและพิชิต
  4. ในการค้นหาเชิงเส้นเราจำเป็นต้องเขียนรหัสเพิ่มเติมในขณะที่การค้นหาแบบไบนารีเราต้องเขียนรหัสน้อยลง

ข้อสรุป

ในบทความข้างต้นเราเห็นความแตกต่างที่ชัดเจนระหว่างการค้นหาเชิงเส้นและการค้นหาแบบไบนารี

วิดีโออธิบาย