Uploaded by User5313

veri yapıları

advertisement
NİŞANTAŞI
ÜNİVERSİTESİ
V E R I YA P I L A R I V E A L G O R I T M A L A R
DERS 7
Mühendislik Mimarlık Fakültesi
mmf.nisantasi.edu.tr
YBLG202 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 tür arama, tüm öğeler üzerinde tek 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 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 öğe öğ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 kadar alt dizide de devam eder.
Procedure binary_search
A ← sorted array
n ← size of array
x ← value ot be searched
Set lowerBound = 1
Set upperBound = n
while x not found
if upperBound < lowerBound
EXIT: x does not exists.
set midPoint = lowerBound +
( upperBound - lowerBound ) / 2
if A[midPoint] < x
set lowerBound = midPoint + 1
if A[midPoint] > x
set upperBound = midPoint - 1
if A[midPoint] = x
EXIT: x found at location midPoint
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
YBLG202 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 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,TutorialPoints,
NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder
Eyecioğlu
Download