NANTAI NVERSTES VERI YAPILARI VE ALGORITMALAR DERS 7

  • Slides: 7
Download presentation
NİŞANTAŞI ÜNİVERSİTESİ VERI YAPILARI VE ALGORITMALAR DERS 7 Mühendislik Mimarlık Fakültesi mmf. nisantasi. edu.

NİŞANTAŞI ÜNİVERSİTESİ VERI YAPILARI VE ALGORITMALAR DERS 7 Mühendislik Mimarlık Fakültesi mmf. nisantasi. edu. tr NİŞANTAŞI ÜNİVERS İTESİ ©

YBLG 202 VERI YAPILARI VE ALGORITMALAR DERS 7 ARAMA ALGORİTMALARI (SEARCH ALGORITHMS) NİŞANTAŞI ÜNİVERSİTESİ

YBLG 202 VERI YAPILARI VE ALGORITMALAR DERS 7 ARAMA ALGORİTMALARI (SEARCH ALGORITHMS) NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

ARAMA ALGORİTMALARI Doğrusal Arama (Linear Search) Doğrusal arama çok basit bir arama algoritmasıdır. Bu

ARAMA ALGORİTMALARI Doğrusal Arama (Linear Search) Doğrusal arama çok basit bir arama algoritmasıdır. Bu tür arama, tüm öğeler üzerinde tek sıralı bir arama yapılır. Her öğe kontrol edilir ve bir eşleşme bulunursa, o öğe geri gönderilir, aksi halde arama, veri toplamanın sonuna kadar devam eder. Arama Zaman karmaşıklığı O(N) dir. Linear Search ( Array A, Value x) Step 1: Set i to 1 Step 2: if i > n then go to step 7 Step 3: if A[i] = x then go to step 6 Step 4: Set i to i + 1 Step 5: Go to Step 2 Step 6: Print Element x Found at index i and go to step 8 Step 7: Print element not found Step 8: Exit NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

ARAMA ALGORİTMALARI İkili Arama (Binary Search) İkili arama, Ο (log n) çalışma zamanı karmaşıklığına

ARAMA ALGORİTMALARI İkili Arama (Binary Search) İkili arama, Ο (log n) çalışma zamanı karmaşıklığına sahip hızlı bir arama algoritmasıdır. Bu arama algoritması, böl ve fethet ilkesinde çalışır. Bu algoritmanın düzgün çalışması için, veri toplama sıralanmış biçimde olmalıdır. İkili arama, koleksiyonun en orta öğesini karşılaştırarak belirli bir öğeyi arar. Bir eşleşme meydana gelirse, öğe dizini döndürülür. Orta öğeden büyükse, öğe orta öğenin sağındaki alt dizide aranır. Aksi takdirde, öğe orta öğenin solundaki alt dizide aranır. Bu işlem, alt dizinin boyutunun sıfıra düşene Procedure binary_search A ← sorted kadar alt array dizide de devam eder. n ← size of array x ← value ot be searched Set lower. Bound = 1 Set upper. Bound = n while x not found if upper. Bound < lower. Bound EXIT: x does not exists. set mid. Point = lower. Bound + ( upper. Bound - lower. Bound ) / 2 if A[mid. Point] < x set lower. Bound = mid. Point + 1 if A[mid. Point] > x set upper. Bound = mid. Point - 1 if A[mid. Point] = x EXIT: x found at location mid. Point end while end procedure NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

ARAMA ALGORİTMALARI Doğrusal Arama vs. İkili Arama NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

ARAMA ALGORİTMALARI Doğrusal Arama vs. İkili Arama NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

YBLG 202 VERI YAPILARI VE ALGORITMALAR Kaynakça NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

YBLG 202 VERI YAPILARI VE ALGORITMALAR Kaynakça NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

KAYNAKÇA 1. M. T. Goodrich, R. Tamassia, D. M. Mount, Data Structures and Algorithms

KAYNAKÇA 1. M. T. Goodrich, R. Tamassia, D. M. Mount, Data Structures and Algorithms in C++, John Wiley & Sons, Inc. , 2011 2. Hakan Kutucu, VERİ YAPILARI, Karabük Üniversitesi Mühendislik fakültesi, 2014 3. Data Structures and Algorithms, Tutorial. Points, NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu