Searching Algorithms
คือ การค้นหาข้อมูลที่มีรูปแบบการค้นหาที่แตกต่างกันออกไปตามรูปแบบที่เราต้องการโดยเราจะแยกระเภทของข้อมูลออกเป็น 2 แบบ คือ
1. ข้อมูลที่ ไม่มีการเรียงลำดับ คือ ข้อมูลที่ยังไม่ได้ทำการ Sort เลยเราจะใช้ตัว
- Sequential Search ในการทำการค้นหาข้อมูลที่เราต้องการ
2. ข้อมูลที่ได้ทำการเรียงลำดับไว้เรียบร้อยแล้ว คือ ข้อมูลที่มีการ Sort ไว้แล้วดังนั้นเราจะมี Algorithms ดังนี้
- Binary Search
Sequential Search นั้นเป็น Algorithms ที่เหมาะสำหรับข้อมูลที่ไม่มีการเรียงลำดับและใช้กับโครงสร้างข้อมูลที่มีปริมาณข้อมูลน้อยส่วนมากมักใช้กับโครงสร้างข้อมูล array และ linked list
ภาพตัวอย่างของการทำ Sequential Search กรณีที่ค้นหาข้อมูลเจอ
จากภาพต้องการหาค่า 54 จะเห็นได้ว่าจุดเริ่มต้นของการค้นหาจะเริ่มที่ข้อมูลตัวแรกแล้วเมื่อไม่พบข้อมูลก็จะเพิ่มค่า i ขึ้นไปเรื่อย ๆ จนเจอข้อมูลที่ต้องการ
- Ex1_Seq_search.png (72.06 KiB) Viewed 3401 times
ภาพตัวอย่างของการทำ Sequential Search กรณีที่ค้นหาข้อมูลไม่เจอ
จากภาพต้องการหา 94 ระบบจะทำการวนหาข้อมูลที่มีในชุดข้อมูลนั้นและเพิ่มค่า i ไปเรื่อย ๆ จนครบถ้าไม่เจอ ก็จะเป็น "Not Found"
- Ex2_seq_search.png (72.09 KiB) Viewed 3401 times
Binary Search นั้นเป็น Algorithms ที่เหมาะกับข้อมูลที่มีการเรียงลำดับไว้แล้วแต่ปัญหากรณีที่ข้อมูลจำนวนมากจะต้องเสียเวลาในการเรียง
ขั้นตอนในการค้นหาข้อมูลของ Binary Search
- กำหนด หรือรับข้อมูลที่ต้องการค้นหา
- แบ่งครึ่งแฟ้มข้อมูลหรือแถวลำดับข้อมูล
- ทำการเปรียบเทียบข้อมูลในแฟ้มข้อมูลหรือแถวลำดับ ข้อมูล โดยแบ่งครึ่งลงไปเรื่อยๆ จนกว่าจะพบหรือไม่สามารถแบ่งได้อีกต่อไป นั้นหมายความว่าไม่พบข้อมูลนั้นแน่นอน
ภาพตัวอย่างการทำ Binary Search
- EX1_Binary_search.png (119.32 KiB) Viewed 3401 times
ต่อจากภาพแรก
- EX1.1_Binary_search.png (124.78 KiB) Viewed 3401 times
อ้างอิง : mwit.ac.th