Sol Reklam
Sağ Reklam

Arama Algoritmaları ve Algoritma Karmaşıklığı

Durum
Mesaj gönderimine kapalı.

SYN_T3SL4

If you can't handle it you will win nothing !

Discord:

Halil#4439

Katılım
11 Mart 2016
Mesajlar
991
Elmaslar
911
Puanlar
19.300
Yaş
22
Yer
Aydın / Kuşadası
Minecraft
SYN_T3SL4
08.02.2021 tarihinde "Algoritma Karmaşıklığı" konulu bir yazı paylaştım. Bu yazıda her ne kadar algoritma karmaşıklığından ve genel hatlarıyla algoritmalardan bahsetsemde arka planda birçok konuya daha değinilmesi gerekiyor. Bunlardan en önemlileri arama algoritmaları.

Düşünsenize bir claim eklentisi yapacaksınız ve bunun için birden fazla kontrolle sonuca ulaşmanız gerekiyor. Sunucuyu yormadan en kısa yolu nasıl seçeceksiniz. Kendi eklentim olan T3SL4Claim'den alıntılar yaparak bir sorunu çözüme kavuşturmayı düşünüyorum. Bu sayede en basit arama algoritmasından daha da üst seviyelere çıkabiliriz.

Öncelikle bir algoritmanın / bir fonksiyonun karmaşıklığının hesaplanmasına değinmek istiyorum.

Hesaplamaları yaparken değerlendirme kriteri satırların adi satır olup olmadığıdır.

Örneğin:
int claimHoloSlot;
bu satır bir adi satırdır ve karmaşıklığa etkisi 1'dir.

for(int i=0; i<claimHoloSlot; i++) {
}

Bu satırın karmaşıklığa katkısı n'dir. Burada n döngünün uzunluğunu ifade eder.

for(int i=0; i<claimHoloSlot; i++) {
for(int j=0; j<claimHoloSlot+2; j++) {
}
}

Bu satırın karmaşıklığa katkısı ise n^2'dir (n kare). Sebebi ise çift döngü olmasıdır. Yani içteki döngü dıştaki kadar dönecek bu n dir bir de içteki döngünün kendi değeri olan n var buradan da n^2 elde edilir.

Bu konuda değerlendireceğim sıralama algoritmalarına değinirsek:

- Linear search,
- Binary search.

Linear Search:
Çoğunlukla kullanılan arama algoritması linear search'tür. Bunun sebebi hem her duruma rahat bir şekilde uyarlanabilmesi hem de yapısı itibariyle basit olmasıdır.

Şimdi karşımızda 10 kişi olsun ve bu 10 kişiden sadece 1'i mavi gözlü olsun. Yazacağınız programın amacı ise bu 1 mavi gözlüyü bulmak olsun. O zaman ne yaparsınız 0'dan başlar 9'a kadar gidersiniz ta ki mavi gözlüyü bulana kadar. Mavi gözlü 0. kişi de çıkabilir 9. kişi de bu tamamen girilen veriye bağlıdır. İşte bu tarz bir arama linear yani doğrusal aramadır. Ve doğrusal arama bazen worst case (Big-O) bazen de Theta notasyonunu verebilir.

Binary Search:
Binary search algoritması için öncelikle girilen verileri sıralamanız gerekmektedir. Sıralama algoritmalarına daha sonra değineceğim için şimdilik sıralanmış olarak varsayabiliriz. Sıralı bir liste üzerinde arama yaparken algoritmanız her aramada listenizi parçalayacaktır bu da karmaşıklığa pozitif olarak etki edecek. Binary search algoritmasının karmaşıklığı (log n)'dir.

Girilen verinin uzunluğu (n) = 100 olsun

Linear search big-O'su = O(n)'den 100'dür.

Binary Search big-O'su = O(log n)'den log100 'dür buradan da 2 bulunur.

Aradaki zaman farkı hafife alınmayacak kadar fazladır.

Şimdiden bol kodlamalar dilerim :))
 

atomickill7

Züm... Zümrü... Zümrüt...
Sunucu Sahibi

Discord:

AtomicKill7#8809

Katılım
13 Aralık 2017
Mesajlar
807
Elmaslar
346
Puanlar
15.285
Yer
Muğla, Bodrum
Minecraft
AtomicKill7
Sana tweet atarak sormayı düşünüyordum ama engellemişsin sanırım beni atamadım. Ullimemati'ye çalışıyorsun sanırım.
 

SYN_T3SL4

If you can't handle it you will win nothing !

Discord:

Halil#4439

Katılım
11 Mart 2016
Mesajlar
991
Elmaslar
911
Puanlar
19.300
Yaş
22
Yer
Aydın / Kuşadası
Minecraft
SYN_T3SL4
Sana tweet atarak sormayı düşünüyordum ama engellemişsin sanırım beni atamadım. Ullimemati'ye çalışıyorsun sanırım.
Allah allah hocam şaşırdım şuan tam olarak nereden engellemişim ki
 

SansarReisOfficial

Tasarımcı
Yasaklandı

Discord:

Corrsy#7006

Katılım
22 Şubat 2019
Mesajlar
1.087
Elmaslar
424
Puanlar
12.285
Yaş
25
Yer
Dünya
Minecraft
CrazySansar
Adam profil fotoğrafının hakkını veriyor canım :D
 

SYN_T3SL4

If you can't handle it you will win nothing !

Discord:

Halil#4439

Katılım
11 Mart 2016
Mesajlar
991
Elmaslar
911
Puanlar
19.300
Yaş
22
Yer
Aydın / Kuşadası
Minecraft
SYN_T3SL4

atomickill7

Züm... Zümrü... Zümrüt...
Sunucu Sahibi

Discord:

AtomicKill7#8809

Katılım
13 Aralık 2017
Mesajlar
807
Elmaslar
346
Puanlar
15.285
Yer
Muğla, Bodrum
Minecraft
AtomicKill7
Allah allah hocam şaşırdım şuan tam olarak nereden engellemişim ki
1613059507752.png

Herkeste olan buraya yazın kısmı sende yazmıyordu ve özel mesaj gönderemiyordum. Ondan şey ettim :S
 

SYN_T3SL4

If you can't handle it you will win nothing !

Discord:

Halil#4439

Katılım
11 Mart 2016
Mesajlar
991
Elmaslar
911
Puanlar
19.300
Yaş
22
Yer
Aydın / Kuşadası
Minecraft
SYN_T3SL4

atomickill7

Züm... Zümrü... Zümrüt...
Sunucu Sahibi

Discord:

AtomicKill7#8809

Katılım
13 Aralık 2017
Mesajlar
807
Elmaslar
346
Puanlar
15.285
Yer
Muğla, Bodrum
Minecraft
AtomicKill7
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı