Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

Algoritma Analizi

Hafta-5
KABA KUVVET ALGORİTMALARI
Brute Force Algorithm
• Kaba Kuvvet (Brute Force)
✓ Bir problemi çözmek için en basit yaklaşım
✓ Bu problemlerin çözümü çok büyük bir olasılık sınıfına sahiptir.
✓ Tüm olası çözümler denenir.
✓ Genellikle problemin tanımına ve konseptine bağımlıdır
✓ Genellikle uygulaması en basit çözümdür
✓ Tüm ihtimaller denenir ve doğru çözüme ulaşılmaya çalışılır.

• En temel örnekler
✓ an hesaplanması
✓ n! Hesaplanması
✓ İki matrisin çarpımı
✓ Bir dizide bir elemanın aranması
✓ Bir şifreyi kırmak için tüm olası kombinasyonları denemek
KABA KUVVET ALGORİTMALARI
Brute Force Algorithm
• Kaba Kuvvet (Brute Force) Dezavantajları
✓ Çok zaman alabilir.
✓ Zaman verimliliği düşük olabilir.
✓ Çok fazla bellek gerektirebilir.
Selection Sort
• Dizinin içerisindeki en küçük eleman bulunur
• 1. sıradaki elemanla yer değiştirilir
• En küçük bulma işlemi dizinin ikinci elemanından başlanılarak tekrar
edilir.
• Bulunan en küçük değer 2. sıradaki elemanla yer değiştirir
• Bu işlem dizinin son elemanına kadar devam eder.
Selection Sort
Selection Sort
• Dizi selection sort algoritmasına göre sıralanmak isteniyor
• 1. iterasyon
0 1 2 3
3 5 -1 7

• 1- min→0, i→0, j→1


A[1]<A[0]
• 2- min→0, i→0, j→2
A[2]<A[0] min→2
• 3- min→2, i→0, j→3
A[3]<A[2] 0 1 2 3
• A[0] Swap A[2] -1 5 3 7
Selection Sort
• Dizi selection sort algoritmasına göre sıralanmak isteniyor
• 2. iterasyon
0 1 2 3
-1 5 3 7
• 1- min→1, i→1, j→2 0 1 2 3
-1 5 3 7
A[2]<A[1] min→2
• 2- min→2, i→1, j→3
A[3]<A[2]
0 1 2 3
• A[1] Swap A[2]
-1 3 5 7
Selection Sort
• Dizi seçimli sıralama algoritmasına göre göre sıralanmak isteniyor
• 3. iterasyon
0 1 2 3
-1 3 5 7

• 1- min→2, i→2, j→3 0 1 2 3


-1 3 5 7
A[3]<A[2]
• Swap

0 1 2 3
-1 3 5 7 Dizinin sıralanmış hali
Selection Sort Algorithm
Temel işlem : Karşılaştırma işlemi

σ𝑛−2 σ 𝑛−1
𝑖=0 𝑗=𝑖+1 1= σ 𝑛−2
𝑖=0 𝑛 − 1 − (𝑖 + 1) =(n-1) σ 𝑛−2
𝑖=0 1 − σ 𝑛−2
𝑖=0 𝑖
𝑛−1 .𝑛
=(n-1).(n-1)-((n-2).(n-1) /2)=(n-1)[(n-1)-(n-2)/2]= , θ(n2)
2
Selection sort algoritması:
In Place bir algoritma: Fazladan bellek gerektirmez. Sıralama işlemlerini yaparken
diziyi farklı bir diziye kopyalamaya ya da alt dizilere bölmeye gerek yoktur. )
Stable bir algoritma: Dizideki eşit iki öğenin sırasını korur. Takas işlemi her zaman
dizinin sıralanmamış kısmında en küçük eleman ile yapılacaktır. Bu durumda eşit
elemanlar arasında takas işlemi yapılmaz ve konumları korunmuş olur.
Bubble Sort Algorithm
Bubble Sort Algorithm
1. iterasyon
i=0 i=0 i=0
J=0 J=1 J=2

90 4 10 30 -1 4 90 10 30 -1 4 10 90 30 -1

i=0
J=3
4 10 30 90 -1 4 10 30 -1 90

1. İterasyon sonrası dizi

4 adım
Bubble Sort Algorithm
2. iterasyon
i=1 i=1 i=1
J=0 J=1 J=2

4 10 30 -1 90 4 10 30 -1 90 4 10 30 -1 90

4 10 -1 30 90

2. İterasyon sonrası dizi

3 adım
Bubble Sort Algorithm
3. iterasyon
i=2 i=2
J=0 J=1

4 10 -1 30 90 4 10 -1 30 90 4 -1 10 30 90

3. İterasyon sonrası dizi

2 adım
Bubble Sort Algorithm
4. iterasyon
i=3
J=0

4 -1 10 30 90 -1 4 10 30 90

4. İterasyon sonrası dizi

1 adım
Bubble Sort Algorithm

Temel İşlem : Karşılaştırma Değiştirme?


Bubble Sort Algorithm

Bubble Sort Algoritması Stable mıdır?


Stable bir algoritmadır.
Aynı değere sahip iki elemanın göreceli
konumları korunur(yer değiştirilmez)
In place: Sıralama işlemleri esnasında diziyi
başka diziye kopyalamaya ya da alt dizilere
bölmeye gerek yoktur. Bu nedenle fazladan
bellek gerektirmez ve in place bir algoritmadır.
String Match Algorithm (Substring Search)
• n uzunluğundaki bir T string dizisi içinde (text), m uzunluğundaki bir P
string dizisini (pattern) arama/ eşleştirme işlemi
• m ≤ n olmalı
• Aranan pattern, text dizisinin bir alt stringi mi?
• Verilen textde tüm patternin meydana geldiği bir konum var mı?

• Brute Force Algorithm


• Kısmi eşleşmeler dikkate alınmaz.
String Match Algorithm (Substring Search)
• Aranan pattern: shell P string array
• Text: she sells sea shells on the sea shore T string array
she_sells_sea_ shells_on_the_sea_shore
shell
shell
shell.
.
.

shell
shell Match and return index of the position
String Match Algorithm (Substring Search)

n-m

n T
m P
0 to n-m
String Match Algorithm (Substring Search)
• Worst Case
• Aranan örüntünün bulunamaması
• Her seferinde (n-m+1 kez) m. karakter karşılaştırmasında uyumsuzluk çıkması

Zaman verimliliği:

σ𝑛−𝑚
𝑖=0 σ 𝑚 2
𝑗=0 1 =mn-m +m Ο(mn) m≤n
Exhaustive Search

• Kombinasyonel çözümler içerisinden belli bir özelliğe sahip olanı


arama için kullanılan bir kaba kuvvet çözümü
• Her ihtimal denenerek arama yapılır
• Gezgin Satıcı Problemi (Traveling Salesman)
• Sırt Çantası Problemi (Knapsack Problem)
• İşe Alma Problemi (Assignment Problem)
Traveling Salesman Problem
• Bir satıcının
• Aralarındaki mesafeler bilinen şehirleri
• Her şehirden bir kez geçerek başladığı
şehre en kısa yoldan dönmesi
• Hamiltonian Circuit
•(n-1)!/2
Knapsack Problem
• Bir hırsızın çalacağı nesnelere karar verme problemi
• Çantasına sığmalı
• Değeri mümkün olduğunca yüksek olmalı
Assignment Problem
• n aday n pozisyon için işe başvuruyor
• Her aday her farklı pozisyon için farklı maaş talep ediyor
• Her pozisyona 1 kişi alınacak
• Her aday işe alınacak
• Toplam maaş maliyeti minimum olacak
Assignment Problem
• Job or people= n
• Time complexity=n!
1, 2, 3, 4 → person

job

*Hungarian Method

You might also like