การคนหาขอมูลและการวเคราะหอลกอรทม
การคนหาขอมลและการวิเคราะหอัลกอริทึม
การคนหาขอมูล
การคนหาขอมล
  การคนหาขอมูล คือ การตรวจสอบขอมูลทีละตัววาใช
                    ื                      ี ั ใ
  ขอมููลที่ตองการคนหาหรือไม ถาไมใชก็ตรวจสอบไป
  เรื่อยๆ
การคนหาแบงออกเปน วธ คือ
การคนหาแบงออกเปน 2 วิธี คอ

  1. การคนหาแบบลําดับ (Sequential Search)
  2. การคนหาแบบทวิภาค (Binary Search)
1. การคนหาแบบลาดบ
1 การคนหาแบบลําดับ
    การคนหาแบบตามลําดับ เปนการเปรียบเทียบขอมูลทีี
                          ํ ั        ี ี 
  ละตัว จนกวาจะพบขอมููลที่ตองการคนหาหรือจนหมด
  ขอมูล แบงเปน 2 ประเภท
  1. คนหาขอมูลทีี่เรีียงลํําดับ
                                ั
  2. คนหาขอมููลที่ยังไมเรียงลําดับ
การวเคราะหประสทธภาพของการคนหาแบบลาดบ
การวิเคราะหประสิทธิภาพของการคนหาแบบลําดับ
  การคนหาแบบเรียงลําดัับ จะมีจานวนการเปรียบเทียบคีย
                    ี ํ         ีํ            ี ี ี
  (key) กับคาตางๆ ดังนี้
  ถาเรากําหนดใหมีขอมูลอยูในแถวลําดับ จํานวน n ตัว
  กรณทดทสุ คอ ตองเปรยบเทยบคยเพยง ครง
  กรณีที่ดีที่สด คือ ตองเปรียบเทียบคียเพียง 1 ครั้ง
  กรณีที่รายที่สุด คือ ตองเปรียบเทียบคียถึง n ครั้ง
  กรณีเฉลี่ยทั่วไป คือ ตองเปรียบเทียบ n/2
ตวอยาง
ตัวอยาง
  จํานวนการเปรียบเทียบ 3 กรณี ของการคนหาขอมูลที่เก็บอยูในแถว
  ลาดับเปนจํานวน 500 ตัว แบบเรียงลําดับ
    ํ
  จํานวนการเปรียบเทียบกรณีที่ดีที่สุด 1      ครั้ง
  จานวนการเปรียบเทียบกรณีรายท่สด 500 ครั้ง
   ํ นวนก ร รยบ ทยบกรณร ยที ุ           00 คร
  จํานวนการเปรียบเทียบกรณีเฉลี่ย             500/2 = 250 ครั้ง
การคนหาแบบทวภาค
การคนหาแบบทวิภาค (Binary Search)

 การคนหาแบบทวิภาค จะทําการเปรียบเทียบขอมูลที่
 ตองการคนหากัับคาคีียที่อยูตรงกลางของตาราง ถา
                                                   
 เทากันก็คนหาจบ แตถาไมเทากันก็จะทําการคนหาใน
            
 ครึ่งหนึ่งของตารางตอ
การวเคราะหและหาประสทธภาพการคนหาแบบทวภาค
การวิเคราะหและหาประสิทธิภาพการคนหาแบบทิวภาค

  การวิิเคราะหอัลกอริทึมเพือหาประสิทธิภาพของการคนหา
                         ิ ่ื      ิ ิ              
  แบบทวิภาค กรณีที่ดีท่สุดคือ กรณีที่พบคาที่ตองการคนหา
                            ี
  อยูตรงกลาง list
     
  เปรีียบเทีียบครัั้งเดีียวก็พบ
   ป                          ็
10




        4
                                            15



    1           7
                                  12                  18




2           5       8        11        14        16        20
ตวอยาง
ตัวอยาง
  ระดับ 0 จํํานวนครังการเปรีียบเทียบโหนด คือ 10 = 0+1 =1
      ั              ้ั           ี โ      ื
  ระดับ 1 จํานวนครั้งการเปรียบเทียบโหนด คือ 4 และ 15 = 1+1=2
  ระดับ 2 จํานวนครั้งการเปรียบเทียบโหนด คือ 1 7 12 และ 18= 2+1
  =3
  ระดับ 3 จํานวนครั้งการเปรียบเทียบโหนด คือ 2 5 8 11 14 16 และ
  20 = 3+1=4
  จํานวนครั้งเปรียบเทียบการคนหาแบบทิวภาคสัมพันธกับระดับของตนไม
  ระดบยงลกกยงเสยเวลาและซบซอนในการคนหามากยงขน
  ระดับยิงลีกก็ยงเสียเวลาและซับซอนในการคนหามากยิ่งขึ้น
         ่      ิ่
Search

Search