การทำ Searching Algorithms เพื่อใช้ในการค้นหาข้อมูล

หมวดสำหรับแบ่งบันความ รู้ต่างๆ จะมีหมวดย่อยๆ ในหมวดนี้ เช่น php, SQL, XML, CSS

Moderator: mindphp, ผู้ดูแลกระดาน

rangsan
PHP Hero Member
PHP Hero Member
โพสต์: 199
ลงทะเบียนเมื่อ: 30/04/2018 9:44 am

การทำ Searching Algorithms เพื่อใช้ในการค้นหาข้อมูล

โพสต์โดย rangsan » 07/05/2018 5:57 pm

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
Ex1_Seq_search.png (72.06 KiB) เปิดดู 107 ครั้ง


ภาพตัวอย่างของการทำ Sequential Search กรณีที่ค้นหาข้อมูลไม่เจอ
จากภาพต้องการหา 94 ระบบจะทำการวนหาข้อมูลที่มีในชุดข้อมูลนั้นและเพิ่มค่า i ไปเรื่อย ๆ จนครบถ้าไม่เจอ ก็จะเป็น "Not Found"
Ex2_seq_search.png
Ex2_seq_search.png (72.09 KiB) เปิดดู 107 ครั้ง


Binary Search นั้นเป็น Algorithms ที่เหมาะกับข้อมูลที่มีการเรียงลำดับไว้แล้วแต่ปัญหากรณีที่ข้อมูลจำนวนมากจะต้องเสียเวลาในการเรียง

ขั้นตอนในการค้นหาข้อมูลของ Binary Search
- กำหนด หรือรับข้อมูลที่ต้องการค้นหา
- แบ่งครึ่งแฟ้มข้อมูลหรือแถวลำดับข้อมูล
- ทำการเปรียบเทียบข้อมูลในแฟ้มข้อมูลหรือแถวลำดับ ข้อมูล โดยแบ่งครึ่งลงไปเรื่อยๆ จนกว่าจะพบหรือไม่สามารถแบ่งได้อีกต่อไป นั้นหมายความว่าไม่พบข้อมูลนั้นแน่นอน

ภาพตัวอย่างการทำ Binary Search
EX1_Binary_search.png
EX1_Binary_search.png (119.32 KiB) เปิดดู 107 ครั้ง


ต่อจากภาพแรก
EX1.1_Binary_search.png
EX1.1_Binary_search.png (124.78 KiB) เปิดดู 107 ครั้ง


อ้างอิง : mwit.ac.th
It’s never too late to start again.

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 17 และ บุคคลทั่วไป 0 ท่าน