ครอบครัวหนึ่งกำลังใช้แล็ปท็อป
เครดิตรูปภาพ: รูปภาพ altrendo / รูปภาพ Stockbyte / Getty
อัลกอริธึมการค้นหาเป็นส่วนสำคัญของหลาย ๆ โปรแกรม การค้นหาบางอย่างเกี่ยวข้องกับการค้นหารายการในฐานข้อมูล เช่น ค้นหาบันทึกของคุณในฐานข้อมูล IRS อัลกอริธึมการค้นหาอื่นๆ จะลากอวนผ่านพื้นที่เสมือน เช่น การค้นหาท่าหมากรุกที่ดีที่สุด แม้ว่าโปรแกรมเมอร์จะสามารถเลือกประเภทการค้นหาได้หลากหลาย แต่พวกเขาก็เลือกอัลกอริธึมที่ตรงกับขนาดและโครงสร้างของฐานข้อมูลมากที่สุดเพื่อมอบประสบการณ์การใช้งานที่เป็นมิตรกับผู้ใช้
ค้นหาเชิงเส้น
การค้นหาเชิงเส้นคืออัลกอริธึมที่เลือกใช้สำหรับรายการแบบสั้น เนื่องจากใช้ง่ายและต้องใช้โค้ดเพียงเล็กน้อยในการติดตั้ง อัลกอริธึมการค้นหาเชิงเส้นจะดูที่รายการแรกเพื่อดูว่าคุณกำลังค้นหาหรือไม่ และถ้าใช่ แสดงว่าคุณทำเสร็จแล้ว ถ้าไม่เช่นนั้น จะดูที่รายการถัดไปและผ่านแต่ละรายการในรายการ
วีดีโอประจำวันนี้
ค้นหาไบนารี
การค้นหาแบบไบนารีเป็นอัลกอริธึมยอดนิยมสำหรับฐานข้อมูลขนาดใหญ่ที่มีระเบียนเรียงตามคีย์ตัวเลข ตัวอย่างผู้สมัคร ได้แก่ ฐานข้อมูล IRS ที่ป้อนด้วยหมายเลขประกันสังคม และระเบียน DMV ที่คีย์ด้วยหมายเลขใบขับขี่ อัลกอริทึมเริ่มต้นที่ตรงกลางของฐานข้อมูล -- หากจำนวนเป้าหมายของคุณมากกว่าตัวเลขตรงกลาง การค้นหาจะดำเนินต่อไปด้วยครึ่งบนของฐานข้อมูล ถ้าหมายเลขเป้าหมายของคุณน้อยกว่าตัวเลขตรงกลาง การค้นหาจะดำเนินต่อไปด้วยครึ่งล่างของฐานข้อมูล มันทำขั้นตอนนี้ซ้ำๆ โดยลดฐานข้อมูลลงครึ่งหนึ่งในแต่ละครั้งจนกว่าจะพบบันทึก การค้นหานี้ซับซ้อนกว่าการค้นหาเชิงเส้น แต่สำหรับฐานข้อมูลขนาดใหญ่ จะเร็วกว่าการค้นหาเชิงเส้นมาก
ค้นหาต้นไม้
การค้นหาแบบทรีจะทำงานก็ต่อเมื่อข้อมูลเข้ากับโครงสร้างทรีเท่านั้น ฐานข้อมูลเริ่มต้นที่รูทที่ไปยังบางรายการ แต่ละรายการจะไปที่รายการอื่นๆ อีกสองสามรายการ และอื่นๆ จนกว่าคุณจะมีทรี ตัวอย่างหนึ่งคือเกมหมากรุก ตำแหน่งกระดานปัจจุบันคือรูท การย้ายที่ถูกต้องตามกฎหมายจากตำแหน่งนี้แสดงถึงการก้าวลงจากต้นไม้หนึ่งก้าว และต่อๆ ไปจนกว่าผู้เล่นจะพบตำแหน่งกระดานที่ทำให้เขาอยู่ในตำแหน่งที่ดีที่สุด
ขั้นตอนวิธีทางพันธุกรรม
การค้นหาอัลกอริธึมทางพันธุกรรมเป็นหนึ่งในเทคนิคเบื้องหลังปัญญาประดิษฐ์ โดยจะค้นหา "โซลูชันที่เหมาะสมที่สุด" ซึ่งแสดงเป็นสตริงข้อมูล เช่น รายการขนาดภายในของเครื่องยนต์ไอพ่นที่ให้แรงขับสูงสุด การค้นหาเริ่มต้นด้วยการสุ่มกลุ่มของสตริงและทดสอบแต่ละสตริง รักษาสตริงที่ดีที่สุดและผสมพันธุ์เพื่อให้ได้รุ่นต่อไป โปรแกรมจะทำซ้ำขั้นตอนนี้จนกว่าจะถึงสตริงโซลูชันที่เหมาะสมที่สุด