เป็นทุกคนที่ทำงานหรือเรียนรู้เกี่ยวกับการเขียนโปรแกรมหรือความรู้ทางด้านคอมพิวเตอร์ คุณคงได้ยินเรื่องของ binary search tree มาบ้างแล้ว วันนี้เราจะมาทำความรู้จักกับ binary search tree ให้มากขึ้นเพื่อให้คุณลดเวลาในการค้นหาข้อมูลลงครึ่งหนึ่ง พร้อมทั้งเป็นการลดความซับซ้อนในการจัดเก็บข้อมูลที่ต้องการค้นหาอีกด้วย!
Binary search tree หรือต้นไม้ค้นหาแบบทวิภาคในภาษาไทย คือโครงสร้างข้อมูลที่ใช้สำหรับการเก็บข้อมูลที่จัดเรียงตามลำดับของ Key ของข้อมูล โดยที่ ในส่วนของมุมซ้าย (left subtree) จะมีค่าข้อมูลที่น้อยกว่า (less than) ค่า Key ในโหนดหลัก (root node) และส่วนของมุมขวา (right subtree) จะมีค่าข้อมูลที่มากกว่าหรือเท่ากับ (greater than or equal to) ค่า Key ในโหนดหลัก ตามลำดับนี้
อย่างไรก็ตาม เพื่อที่จะลดเวลาในการค้นหาข้อมูลลงครึ่งหนึ่งเราจึงต้องการทราบถึงการใช้งาน binary search tree อย่างถูกต้อง การใช้งาน binary search tree จะช่วยให้การค้นหาข้อมูลที่ต้องการทำได้อย่างมีประสิทธิภาพ โดยที่เวลาที่ใช้ในการค้นหาข้อมูลจะมีเพียงครึ่งหนึ่งของวิธีการค้นหาที่ใช้ทั่วไปอย่าง sequential search
การค้นหาข้อมูลใน binary search tree จะประสงค์พอเพียงเพียง log n โดยที่ n คือจำนวนข้อมูลที่ถูกจัดเก็บไว้ใน binary search tree การใช้ binary search tree บ่งบอกถึงความสามารถในการจัดเก็บข้อมูลที่มีปริมาณมาก และเพิ่มความเป็นไปได้ในการค้นหาข้อมูลอย่างมีประสิทธิภาพ นอกจากนี้ binary search tree ยังช่วยลดความซับซ้อนในการจัดเก็บข้อมูล ทำให้การค้นหาข้อมูลทำได้อย่างมีประสิทธิภาพเพียงครึ่งหนึ่งของเวลาที่ใช้ในการค้นหาข้อมูลจากวิธีทั่วไป
เพื่อที่จะให้คุณคุ้นเคยกับ binary search tree มากยิ่งขึ้น การที่เราจะสร้าง binary search tree นั้น คุณจำเป็นต้องทำความเข้าใจถึงการทำงานของ binary search tree ก่อนทั้งหมด เราจะมาดูกันดีกว่าว่า binary search tree ทำงานอย่างไร
ต้นไม้ค้นหาแบบทวิภาคกำหนดคุณสมบัติที่ถือเป็นหลักฐานว่าโหนดแต่ละโหนดมีค่าข้อมูลที่มีคุณสมบัติของต้นไม้บทั้งสองฝั่ง (left subtree และ right subtree) สามารถเรียกต้นไม้ค้นหาแบบทวิภาค เป็นคุณสมบัติของต้นไม้ชนิดหนึ่งที่ถือโฉนดัน ถึงขณะนี้แล้วจะมีอำนาจในการจัดเก็บข้อมูลได้ และการค้นหาข้อมูลได้ ซึ่งใน binary search tree โหนดแต่ละโหนดจะมีค่าข้อมูลที่น้อยกว่าค่าข้อมูลของโหนดแม่ทั้งสิ้วรวมถึงถึงค่าข้อมูลของโหนดทุกต่อๆไปในส่วนของมุมซ้ายและมีค่าข้อมูลที่มากกว่าหรือเท่ากับค่าข้อมูลของโหนดแม่รวมถึงค่าข้อมูลของโหนดทุกต่องไปในส่วนของมุมขวา
การสร้าง binary search tree นั้น เราต้องทำความเข้าใจกับคุณสมบัติของ binary search tree ให้เข้าใจได้ดีก่อนทั้งหมด ซึ่งการทำความเข้าใจคุณสมบัติของ binary search tree จะทำให้การสร้าง binary search tree ได้ถูกต้องและการค้นหาข้อมูลใน binary search tree มีประสิทธิภาพสูง
อย่างไรก็ตาม binary search tree ไม่ได้เหมาะสำหรับการจัดเก็บข้อมูลที่มีลำดับการเก็บของข้อมูลที่ลำดับการเก็บของข้อมูลอาจมีลำดับไม่สม่ำเสมอ
[Binary search tree] ไม่สามถูกสร้างเป็นได้ย่างมีประสิทธิภาพในกรณีที่จำนวนข้อมูลที่ต้องการจัดเก็บมีลำดับการเก็บของข้อมูลที่ลำดับไม่สม่ำเสมอ
และต้องมีประสิทธิภาพจริงๆ binary search tree ถูกสร้างจากการเริ่มสร้างจากการใส่ข้อมูลเข้าไปโดยที่โหนดแรกนั้นคือ Root node เนื่องจากโหนดแรกไม่มีโหนดแม่ แล้วเมื่อได้ทำการบูรณาการโหนดแต่ล่ะโหนดแล้วเราก็จะสามารถทำการค้นหาข้อมูลโดยการเริ่มจาก Root node แล้วทำการเทียบลำดับค่าข้อมูลที่ต้องการค้นหากับค่าข้อมูลของโหนดที่เลือกถึงที่ในต้นไม้ จนกว่าเราจะเจอข้อมูลตามที่ต้องการ หรือจนกว่าเราจะเจอขีดสุดท้ายของต้นไม้
เพราะอย่างไรก็ตามเมื่อใครๆ ก็มีข้อมูลที่ต้องการจะค้นหา การที่ binary search tree นั้นจะเป็นเพียงอย่างเดียวหรือไม่นั้นเชื่อของโดดไม่สามารถเลื่องหลังในการใช้ binary search tree ก่อนที่จะได้ทำความเข้าใจไว้ดีทีเดียวแล้ว หรือไม่ก็สามารถเลี่ยงการมีไวไวเรียนรู้นี้และนวการวิกวี่รีสามารถเลื่องหรือสัมใจ ว่าการใช้งาน binary search tree นั้นสามารถเป็นวิธีที่ดีกว่าปกติในทำโปรแกรมที่ใช้ในการค้นหาข้อมูลนุนหากที่คุณใช้ถึงขึ้นที่างวิธีการค้นหาข้อมูลอย่างเฉกถนนหมายค่าในข้อมูลอย่างไรก็ตามการใช้งาน binary search tree นั้นคุณต้องการที่จะทราบถึงการใช้งาน binary search tree อย่างถูกต้อง การใช้งาน binary search tree จะช่วยให้การค้นหาข้อมูลที่ต้องการทำได้อย่างมีประสิทธิภาพ โดยที่เวลาที่ใช้ในการค้นหาข้อมูลจะมีเพียงครึ่งหนึ่งของวิธีการค้นหาที่ใช้ทั่วไปอย่าง sequential search
การค้นหาข้อมูลใน binary search tree จะประสงค์พอพียงเพียง log n โดยที่ n คือจำนวนข้อมูลที่ถูกจัดเก็บไว้ใน binary search tree การใช้ binary search tree บ่งบอกถึงความสามารถในการจัดเก็บข้อมูลที่มีปริมาณมาก และเพิ่มความเป็นไปได้ในการค้นหาข้อมูลอย่างมีประสิทธิภาพ นอกจากนี้ binary search tree ยังช่วยลดความซับซ้อนในการจัดเก็บข้อมูลทำให้การค้นหาข้อมูลทำได้อย่างมีประสิทธิภาพเพียงครึ่งหนึ่งของเวลาที่ใช้ในการค้นหาข้อมูลจากวิธีทั่วไป
เพื่อที่จะให้คุณคุ้นเคยกับ binary search tree มากยิ่งขึ้น การที่เราจะสร้าง binary search tree นั้น คุณจำเป็นต้องทำความเข้าใจถึงการทำงานของ binary search tree ก่อนทั้งหมด เราจะมาดูกันดีกว่าว่า binary search tree ทำงานอย่างไร ต้นไม้ค้นหาแบบทวิภาคกำหนดคุณสมบัติที่ถือเป็นหลักฐานว่าโหนดแต่ละโหนดมีค่าข้อมูลที่มีคุณสมบัติของต้นไม้บทั้งสองฝั่ง (left subtree และ right subtree) สามารถเรียกต้นไม้ค้นหาแบบทวิภาค เป็นคุณสมบัติของต้นไม้ชนิดหนึ่งที่ถือโฉนดัน ถึงขณะนี้แล้วจะมีอำนาจในการจัดเก็บข้อมูลได้ และการค้นหาข้อมูลได้ ซึงใน binary search tree โหนดแต่ละโหนดจะมีค่าข้อมูลที่น้อยกว่าค่าข้อมูลของโหนดแม่ทั้งสิ้วรวมถึงถึงค่าข้อมูลขอข้อมูลขอข้อมูลทุกต่อๆไปในส่วนส่วนของมุมซ้ายและมีค่าข้อมูลที่มากกว่าหรือเท่ากับค่าข้อมูลขอข้อมูลขอข้อมูลขอข้อมูลทุกต่องไปในส่วนของมุมขวา
การสร้าง binary search tree นั้น เราต้องทำความเข้าใจกับคุณสมบัติของ binary search tree ให้เข้าใจได้ดีก่อนทั้งหมด ซึ่งการทำความเข้าใจคุณสมบัติของ binary search tree จะทำให้การสร้าง binary search tree ได้ถูกต้องและการค้นหาข้อมูลใน binary search tree มีประสิทธิภาพสูง
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM