การค้นหาข้อมูล (Searching) การค้นหาข้อมูลถือว่าเป็น Algorithm ที่สำคัญที่สุดเรื่องหนึ่ง ในการนำคอมพิวเตอร์ไปใช้งาน เพราะการเรียกข้อมูลจากหน่วยความจำ หรือจาก File เพื่อนำมาใช้งาน ส่วนใหญ่แล้วการค้นหาข้อมูลจะถูกประกอบเข้าเป็นส่วนหนึ่งของขบวนการทำงานด้วยคอมพิวเตอร์ การค้นหาข้อมูลแบ่งตามลักษณะการจัดเก็บได้ 2 อย่างคือ 1.การค้นหาข้อมูลภายใน (Internal Search) 2. การค้นหาข้อมูลภายนอก (External Search) การค้นหาข้อมูลแบ่งตามลักษณะการค้นหาได้ 2 อย่างคือ 1. การค้นหาข้อมูลตามลำดับ (Linear Search) ซึ่งการค้นหาแบบนี้มีเทคนิค 2 อย่างคือ 1.1Unsorted Linear Search 1.2 Sorted Linear Search 2. การค้นหาข้อมูลทวิภาค (Binary Search) 2.1 Binary Search in Array 2.2 Binary Search Tree หลักการUnsorted Linear Search เป็นการค้นหาข้อมูลแบบเรียงลำดับทีละตัว เริ่มตั้งแต่ข้อมูลตัวแรก ไปเรื่อย ๆ จนกระทั่งพบข้อมูลที่ต้องการ หรือจนหมดทุกตัว AlgorithmUnsorted Linear Search 1.กำหนดให้ตัวนับเริ่มต้นเป็นตัวแรกของข้อมูล2.เปรียบเทียบข้อมูลถ้า- พบข้อมูลทำข้อ5- ไม่พบข้อมูลทำข้อ33.เพิ่มค่าตัวนับ4.ทำซ้ำข้อ25.จบ ComplexityUnsorted Linear Searchครั้งที่1เปรียบเทียบ1 ครั้งครั้งที่2เปรียบเทียบ1 ครั้งครั้งที่3เปรียบเทียบ1 ครั้งครั้งที่4เปรียบเทียบ1 ครั้งครั้งที่5เปรียบเทียบ1 ครั้งครั้งที่6เปรียบเทียบ1 ครั้งรวม6ครั้งถ้าให้ข้อมูลมีn จำนวนจะได้1+ 1+1+1+1+1=6 หรือn ครั้งนั่นเองดังนั้นComplexity หรือBig-Oh ของUnsorted Linear Search จึงมีค่าเป็น O(n) - Best case O(1) - Worse case O(n) <table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="background-color: transparent; border: #ffffff"><div class="shape" style="padding-right: 7.2pt; padding-left: 7.2pt; padding-bottom: 3.6pt; padding-top: 3.6pt">
ถ้าให้ข้อมูลมีn จำนวนจะได้
1+ 1+1+1+1+1=6หรือn ครั้งนั่นเองดังนั้นComplexity หรือBig-Oh ของUnsorted Linear Search จึงมีค่าเป็น O(n) - Best case O(1) - Worse case O(n) </div></td></tr></tbody></table></span> <p> </p>หลักการSorted Linear Search เป็นการค้นหาข้อมูลแบบเรียงลำดับทีละตัว เริ่มตั้งแต่ข้อมูลตัวแรก ไปเรื่อย ๆ จนกระทั่งพบข้อมูลที่ต้องการ หรือจนค่าของข้อมูลตัวถัดไปมีค่ามากกว่า ซึ่งมีเงื่อนไขว่า ข้อมูลนั้นต้องมีการจัดเรียงแล้วเท่านั้น Algorithm <table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="background-color: transparent; border: #ffffff"><div class="shape" style="padding-right: 7.2pt; padding-left: 7.2pt; padding-bottom: 3.6pt; padding-top: 3.6pt"><p style="margin: 0cm 0cm 0pt" class="MsoNormal">Sorted Linear Search</p></div></td></tr></tbody></table> <p> </p>1.กำหนดให้ตัวนับเริ่มต้นเป็นตัวแรกของข้อมูล2.เปรียบเทียบข้อมูลถ้า-พบข้อมูลทำข้อ 5-ค่าของข้อมูลที่ต้องการค้นหา<ค่าของข้อมูลที่ตำแหน่ง ตัวนับ ทำข้อ 53.เพิ่มค่าตัวนับ4.ทำซ้ำข้อ25.จบ <p> </p>