Page 37 - โครงสร้างข้อมูลและขั้นตอนวิธี
P. 37

ขั้นต​ อนว​ ิธี​การค​ ้นหาข​ ้อมูล 15-27

รอบท​ ี่ 4

            	 5	                   24	 33	 43	        68	 73	                                             90	 91

                                   left = 3 right = 3

                                               pos = (3 + 3)/2 = 3
                                               A[pos] = 33

                                   X = 34

       - 	จาก​ค่าข​ อบ​ซ้ายแ​ ละ​ขวา left = 3 และ right = 3 หา​ต�ำแหน่งก​ ่ึงกลาง​ระ​หว่างซ​ ้ายแ​ ละ​ขวา
                pos 	 = 	(left + right) / 2
                	 = 	(3 + 3) /2
                	 = 	3

       - 	เปรียบเ​ทียบ​ค่า x = 34 กับค​ ่า A[3] = 33 ซึ่ง​ค่า x มากกว่า
       - 	ให้​สืบค้น​จากส​ ่วนท​ างข​ วา โดยป​ รับข​ อบ​ซ้าย

                left	 = 	pos + 1
                	 = 	3 + 1
                	 = 	4
รอบท​ ี่ 5
       - 	เน่ืองจาก​ขอบ​ซ้าย 4 มากกว่าข​ อบ​ขวา 3 ดังน​ ้ัน โ​ปรแกรม​ออกจ​ าก​การ​วน​รอบ
       - 	ส่งค​ ่าก​ ลับเ​ป็นต​ �ำแหน่งท​ ่ีไ​ม่พ​ บค​ ือ -1

4. 	วเิ คราะห​์ประสิทธิภาพของขั้นตอนวธิ ีการคน้ หาข้อมูลแบบทวิภาค
            การว​ ิเคราะห์​ประสิทธิภาพ​น้ัน​จะ​พิจารณา​จาก​ลักษณะก​ าร​ค้นหาข​ ้อมูลท​ ่ีไ​ด้ 3 แบบ ดังนี้
            4.1 	กรณ​ดี ี​ท่ีสุด
            กรณีน​ ี้ข​ ้อมูลท​ ี่ต​ ้องการ​ค้นหาอ​ ยู่​เป็น​สมาชิกต​ รง​กึ่งกลางข​ อง​อาร์เรย์​​เช่น

                  ข้อมูลท​ ่ี​ต้องการ​ค้นหา คือ 16

                  ข้อมูล 1 7 15 16 23 32 34

            การ​ค้นหา​ลักษณะ​นี้​จะ​ใช้​การเ​ปรียบ​เทียบ​แค่ค​ รั้ง​เดียวเ​สมอ​ดัง​น้ัน​ประสิทธิภาพ​เชิง​เวลา​เท่ากับ O(1)
            4.2 	กรณี​แย​ท่ ี่สุด
            กรณีน​ ้ีข​ ้อมูลท​ ี่​ต้องการ​ค้นหาไ​ม่​อยู่​ใน​อาร์เรย์​​เช่น

                  ข้อมูลท​ ี่ต​ ้องการค​ ้นหา คือ 33

                  ข้อมูล 1 7 15 16 23 32 34

            การ​ค้นหา​ลักษณะ​นี้​จะ​ใช้​การ​เปรียบ​เทียบ​วน​ซ้ําจนกว่า​ขอบ​ซ้าย​มี​ค่า​มากกว่า​ขอบ​ขวา​ โดย​การ​วน​ซ้ํา
                                                                                                   N
แต่ละค​ ร้ังจ​ ะล​ ด​จ�ำนวนข​ ้อมูล​ลง​เหลือ N/2 ซึ่งก​ ารว​ น​ซ้ําครั้งส​ ุดท้าย​เกิด​ข้ึน​เม่ือ  2k  ≥  1 ดังน​ ้ัน
   32   33   34   35   36   37   38   39   40   41   42