ALGORİTMA İ VE PROGRAMLAMA



Benzer belgeler
Algoritma Analizi. Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan

YZM 2116 Veri Yapıları

BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

VERİ YAPILARI DERS NOTLARI BÖLÜM 2 ALGORİTMA ANALİZİ. Yard. Doç. Dr. Deniz KILINÇ

Bölüm 2 Algoritmalar. 2.1 Giriş

Algoritma Analizi Big O

SAYILAR TEORİSİ - PROBLEMLER

Volkan Karamehmetoğlu

Algoritmalara Giriş 6.046J/18.401J

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ

Matematiksel İktisat-I Ders-1 Giriş

TOPLAMADA KISAYOLLAR

AYRIK YAPILAR ARŞ. GÖR. SONGÜL KARAKUŞ- FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ, ELAZIĞ

Algoritmalar ve Karmaşıklık

Stringler. Fonksiyon ve Metotlar

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

matematik sayısal akıl yürütme mantıksal akıl yürütme

Değerlendirme testleri:

Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR

Türev Kavramı ÜNİTE. Amaçlar. İçindekiler. Yazar Prof.Dr. Vakıf CAFEROV

10. ÜNİTE DİRENÇ BAĞLANTILARI VE KİRCHOFF KANUNLARI

ÇANAKKALE ONSEKİZ MART ÜNİVERSİTESİ FEN EDEBİYAT FAKÜLTESİ MATEMATİK BÖLÜMÜ MODÜLER ARİTMETİK

Çalışma Soruları(MAT-117)-Harita Mühendisliği Bölümü(2015)-Ara Sınav

1. DERECEDEN İKİ BİLİNMEYENLİ DENKLEMLER

NESNEYE DAYALI PROGRAMLAMA VE C++

Regresyon ve İnterpolasyon. Rıdvan YAKUT

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

TUNCELİ ÜNİVERSİTESİ ÖĞRENCİ İŞ YÜKÜNE DAYALI AVRUPA KREDİ TRANSFER SİSTEMİ (AKTS) HESAPLAMA KILAVUZU BOLOGNA KOORDİNATÖRLÜĞÜ

1. ÜNİTE TAM SAYILAR KONULAR 1. SAYILAR

Ders 2: Su Miktarı Hesabı. Su temin şeması tasarımında kentsel kullanım amaçlı su miktarının hesaplanması için aşağıdaki veriler gereklidir:

Hipotez Testleri. Kazanımlar

ANKARA İLİ BASIM SEKTÖRÜ ELEMAN İHTİYACI

TAM SAYILARLA İŞLEMLER

MÜHENDİSLİK EKONOMİSİ ÖRNEK PROBLEMLER

T.C. Ölçme, Seçme ve Yerleştirme Merkezi

PROGRAMLAMA TEMELLERİ DERSİ

ÖLÇME VE DEĞERLENDĠRMEDE TEMEL ĠSTATĠSTĠKĠ HESAPLAMLAR ĠSTATĠSTĠK? İstatistik, verileri analiz ve organize etmekle uğraşan bir disiplindir.

YER DEĞİŞTİRME VE DEĞER DÖNÜŞTÜRME ÖZELLİĞİNE SAHİP GÖRÜNTÜ ŞİFRELEME ALGORİTMALARININ ANALİZİ

Demodülasyon Algoritmaları İçin En İyilenmiş Windows İşletim Sistemi Uygulamaları

Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları. Mustafa Kemal Üniversitesi

f(x) ve g(x) reel sayılarda tanımlı iki fonksiyon olmak üzere, x > k olacak şekilde bir k vardır öyle ki,

b Üslü Sayılara Giriş b İşlem Önceliği b Ortak Çarpan Parantezine Alma ve Dağılma Özelliği b Doğal Sayı Problemleri b Çarpanlar ve Katlar - Kalansız

MAT223 AYRIK MATEMATİK

Madde 2. KTÜ de not değerlendirilmesinde bağıl değerlendirme sistemi (BDS ) ve mutlak değerlendirme sistemi (MDS ) kullanılmaktadır.

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

t sayı tabanı ve üzere, A (abcde) sayısının basamakları: ( 2013) sayısını çözümleyelim. A (abcde) sayısının, ( 30214) sayısını çözümleyelim.

VERİ YAPILARI VE PROGRAMLAMA

DERS 1. ki De i kenli Do rusal Denklem Sistemleri ve Matrisler

Bir ölçümün sonucu, istenilen anlamlı rakam sayısından daha fazla sayıda rakam 1,24 6,26 87,4 76,2

BİRİNCİ BÖLÜM SAYILAR

Ders: Konu: TEOG. Yaprak No: Copyright: MİKRO ANLATIM. Kazanım: Üslü sayılar ile ilgili kuralları hatırlar.

Veri Yapıları. Yrd. Doç. Dr. Şadi Evren ŞEKER

FONKSİYONLAR ÜNİTE 1. ÜNİTE 1. ÜNİTE 1. ÜNİTE 1. ÜNİT

Onlu Sayılandırmadan Dönüştürme

3.Hafta Master Teorem ve Böl-Fethet Metodu

O NOTASYONU. Abdullah Gazi Emre DAĞLI

Alıştırma 1: Yineleme

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#3: ALGORİTMA ANALİZİ#2

Dış ş göz, taze göz iyidir. Kullanalım.

Bilgisayar Programlama MATLAB

İÇİNDEKİLER. Ön Söz...2. Tam Sayılarda Bölünebilme...3. Kongrüanslar Primitif (İlkel) Kökler ve İndeksler Genel Tarama Sınavı...

ATAKÖY CUMHURİYET ANADOLU LİSESİ 9. SINIF MATEMATİK DERSİ YILLIK PLANI

KORELASYON VE TEKLİ REGRESYON ANALİZİ-EN KÜÇÜK KARELER YÖNTEMİ

KODLAMA SİSTEMLERİNİN TANIMI :

FEN FAKÜLTESİ MATEMATİK BÖLÜMÜ YAZ OKULU DERS İÇERİĞİ. (Mühendislik Fakültesi Bütün Bölümler, Fen Fakültesi Kimya ve Astronomi Bölümleri)

Elektrik Mühendisliğine Giriş (EE 234) Ders Detayları

Kesirler ve İşlemler Ondalık Kesirler ve İşlemler, Yüzdeler, Oran. Yrd. Doç. Dr. Nuray Çalışkan-Dedeoğlu Matematik Eğitimi

EĞİTİM ÖĞRETİM YILI 8. SINIF MATEMATİK DERSİ KAZANIMLARININ ÇALIŞMA TAKVİMİNE GÖRE DAĞILIM ÇİZELGESİ

Üstel modeli, iki tarafın doğal logaritması alınarak aşağıdaki gibi yazılabilir.

BİLİMSEL BİLGİ BİLİMSEL ARAŞTIRMALARLA ÜRETİLİR. İSTATİSTİKSEL YÖNTEMLERE BİLİMSEL ARAŞTIRMA TAMAMLANDIĞINDA DEĞİL, DAHA PLANLAMA

Analiz Raporu. Analiz aşamasında projenin içeriği belirlenir. Çözeceğimiz problemin büyük bir problem olup olmadığını değerlendirmek,

KÜMELER. A = {x : (x in özelliği)} Burada x : ifadesi öyle x lerden oluşur ki diye okunur. Küme oluşturur. Çünkü Kilis in üç tane ilçesi.

Kalıtım ( Inheritance ) BBS-515 Nesneye Yönelik Programlama

Okunabilir Kod Yazım Standartları: Şiir Gibi Kod Yazmak

Cebir Notları. Bağıntı. 1. (9 x-3, 2) = (27, 3 y ) olduğuna göre x + y toplamı kaçtır? 2. (x 2 y 2, 2) = (8, x y) olduğuna göre x y çarpımı kaçtır?

Kısmen insan davranışlarını veya sezgilerini gösteren, akılcı yargıya varabilen, beklenmedik durumları önceden sezerek ona göre davranabilen bir

PROGRAMLAMAYA GİRİŞ VE PROGRAM GELİŞTİRME

DERS BİLGİ FORMU. Zorunlu Ders. Haftalık Ders Saati Okul Eğitimi Süresi

SERTLİK ÖLÇME DENEYLERİ

RCRCR KAVRAMA MEKANİZMASININ KİNEMATİK ANALİZİ Koray KAVLAK Selçuk Üniversitesi, Mühendislik-Mimarlık Fakültesi, Makine Mühendisliği Bölümü, KONYA

Makine Öğrenmesi 1. hafta

Dağıtık Sistemler CS5001

AKDENİZ ÜNİVERSİTESİ ORAN-ORANTI. İlköğretim Matematik Öğretmenliği. Grup1 E N F O R M A T İ K - L A B 4

BİLGİSAYAR MİMARİSİ. Mimariye Giriş. Özer Çelik Matematik-Bilgisayar Bölümü

Toplam Olasılık Kuralı

Mühendislik Ekonomisi. Prof.Dr. Orhan TORKUL

LYS Matemat k Deneme Sınavı

DEN 322. Gaz Türbini Karakteristikleri ve Kombine tahrik sistemleri

DÖĞRENCİLERİN DİKKATİNE!

KALİTE ÇEMBERLERİ NEDİR?

Kümenin özellikleri. KÜMELER Burada x : ifadesi öyle x lerden oluşur ki diye okunur. Örnek: Kilis in ilçeleri

T.C. DOKUZ EYLÜL ÜNİVERSİTESİ STRATEJİ GELİŞTİRME DAİRE BAŞKANLIĞI Yılı Sunulan Hizmeti Değerlendirme Anket Raporu

kpss ezberbozan serisi MATEMATİK GEOMETRİ SORU BANKASI Eğitimde

KTO KARATAY ÜNİVERSİTESİ Temel Bilgisayar 2. Hazırlayan : Erdem YAVUZ

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Yrd. Doç. Dr. Caner ÖZCAN

+ 1. ) transfer edilir. Seri. Isı T h T c sıcaklık farkı nedeniyle üç direnç boyunca ( dirençler için Q ısı transfer miktarı aşağıdaki gibidir.

Transkript:

ALGORİTMA İ VE PROGRAMLAMA II Öğr.Gör.Erdal GÜVENOĞLU Hafta 2 Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü

ALGORİTMA ANALİZİ 2 Neden algoritmayı analiz ederiz? Algoritmanın performansını ölçmek için Farklı algoritmalarla karşılaştırmak için Daha iyisi mümkün mü? Olabileceklerin en iyisi mi? Özelliklerinin analizi Algoritmanın çalışma ş azamanı a Hafızada kapladığı alan

3 KARMAŞIKLIK: ALGORİTMA PERFORMANSI VE ÖLÇME YÖNTEMİ Bir algoritmanın performansı iç ve dış faktörlere bağlıdır. İç Algoritma verimliliği: Çl Çalıştırmak kiçin i gereken zaman Çalıştırmak için gereken yer (bellek alanı) Dış Girdi verisinin büyüklüğü Bilgisayarın i hızı Derleyicinin kalitesi Karmaşıklık iç faktörlerle ve daha çok da zamanla ilgilidir.

ÇALIŞMA Ş ZAMANI ANALİZİ 4 Bir algoritmanın performansı iç ve dış faktörlere bağlıdır. Algoritma 1 T 1 (N)=1000N Algoritma 2 T 2 (N)=N 2 N giriş verisi Çalışma zamanı T 1 (n) N giriş verisi 10001010101000111110001100011 10101010101010101001000101010 10001000000000000111101010001 11010 Çalışma zamanıt 2 (n)

ÇALIŞMA Ş ZAMANI ANALİZİ 5 T(N) a zamanı Çalışma Algoritma 2 Algoritma 1 1000 Giriş i verisi i N

ÇALIŞMA Ş ZAMANI ANALİZİ 6 N T1 T2 10 10-2 sec 10-4 sec 100 10-1 sec 10-2 sec 1000 1sec 1sec 10000 10 sec 100 sec 100000 100 sec 10000 sec N değerinin 1000 den küçük olduğu durumlarda iki algoritma arasındaki çalışma zamanı ihmal edilebilir büyüklüktedir.

7 BÜYÜME HIZI VE BÜYÜK O (BIG O) NOTASYONU Büyüme hızı bir algoritmanın performansını yansıtan en iyi göstergedir. Büyük-O ük notasyonu büyüme ü hızını gösterir. Bir algoritmanın performansını en iyi tanımlayan matematiksel bir formüldür ve algoritmanın iç detaylarına bakılarak elde edilir. Büyük-O girdi verisinin büyüklüğünü gösteren bir N parametresine dayanan bir fonksiyondur. Örneğin n değerine bağlı olarak performansı (sabit a, b, c değerleri için) an 2 + bn + c olan bir algoritmanın performansı O(N 2 ) dir N değeri arttıkça N 2 terimi baskın olacağı için büyük-o notasyonunda sadece baskın olan terim kullanılır.

8 BÜYÜME HIZI VE BÜYÜK O (BIG O) NOTASYONU Bir algoritmanın çalışma süresi T(N)=O(f(n)) O bir fonksiyon değil, sadece gösterimdir.

9 BÜYÜME HIZI VE BÜYÜK O (BIG O) NOTASYONU O notasyonunda yazarken en basit şekilde yazarız. Örneğin 3n 2 +2n+5 = O(n 2 ) Aşağıdaki gösterimlerde doğrudur fakat kullanılmaz. 3n 2 +2n+5 = O(3n 2 +2n+5) 3n 2 +2n+5 = O(n 2 +n) 3n 2 +2n+5 = O(3n 2 )

BÜYÜK O (BIG O) NASIL HESAPLANIR? 10 Bir program kodunun zaman karmaşıklığını hesaplamak için 5 Kural; 1 Döngüler 2 İç içe Döngüler 3 Ardışık deyimler 4 If-then-else deyimleri 5 Logaritmik karmaşıklıkş

1. DÖNGÜLER 11 Bir döngünün çalışma zamanı en çok döngü içindeki deyimlerin çalışma zamanının iterasyon sayısıyla çarpılması kadardır. n defa çalışır for (i=1; i<=n; i++) { m = m + 2; } +2 Sabit zaman Toplam zaman = sabit c * n = cn = O(N)

2. İÇİÇE DÖNGÜLER 12 İçteki analiz yapılır. Toplam zaman bütün döngülerin çalışma sayılarının çarpımına eşittir for (i=1; i<=n; i++) { for (j=1; j<=n; j++) { k = k+1; } Dış döngü iç döngü n defa n defa çalışır çalışır } Sabit zaman Toplam zaman = c * n * n * = cn 2 = O(N 2 )

3. ARDIŞIK DEYİMLER 13 Her deyimin zamanı birbirine eklenir. Sabit zaman x = x +1; Sabit zaman Dış döngü n defa çalışır x=x+1; for (i=1; i<=n; i++) { m = m + 2; } for (i=1; i<=n; i++) { for (j=1; j<=n; j++) { k = k+1; } Sabit zaman } n defa çalışır iç döngü n defa çalışır toplam zaman = c 0 + c 1 n + c 2 n 2 = O(N 2 )

4. IF-THEN THEN-ELSE ELSE DEYİMLERİ 14 En kötü çalışma zamanı:test zamanına then veya else kısmındaki çalışma zamanının hangisi büyükse o kısım eklenir. test: sabit Diğer if : sabit+sabit (else yok) } if (depth( )!= otherstack.depth( ) ) { return false; then: } sabit else { for (int n = 0; n < depth( ); n++) { else: if (!list[n].equals(otherstack.list[n])) (sabit +sabit) * n return false; } } Toplam zaman = c 0 + c 1 + (c 2 + c 3 ) * n = O(N)

5. LOGARİTMİK KARMAŞIKLIK 15 Problemin büyüklüğünü belli oranda(genelde ½) azaltmak için sabit bir zaman harcanıyorsa bu algoritma O(log N) dir. Örnek algoritma (binary search): N sayfalı bir sözlükten bir sözcük arama Sözlüğün orta kısmına bakılır Sözcük ortaya göre sağda mı solda mı kaldığı bulunur? Bu işlem sağ ğ veya solda sözcük bulunana kadar tekrarlanır

O NOTASYONU ÖRNEK 1 16 3n 2 +2n+5 = O(n 2 ) ifadesinin doğru olup olmadığını ispatlayınız. 10 n 2 =3n 2 +2n 2 +5n 2 Çö ü kü i i ğl 3n 2 + 2n + 5 for n 1 kaç tane n 0 c = 10, n 0 = 1 Çözüm kümesini sağlayan ve c cifti olduğu önemli değildir. Tek bir çift olması notasyonun doğruluğu için yeterlidir.

O NOTASYONU ÖRNEK 2 17 Fonksiyonların harcadıkları zamanları O notasyonuna göre yazınız. f1(n) = 10 n + 25 n 2 f2(n) = 20 n log n + 5 n ( ) g f4(n) = n 1/2 + 3 n log n O(n 2 ) f3(n) = 12 n log n + 0.05 n 2 O(n log n) O(n 2 ) O(n log n)

SIK KULLANILAN BÜYÜME HIZLARI 18 Zaman karmaşıklığı Örnek O(1) sabit Bağlı listeye ilk eleman olarak ekleme yapma O(log N) log Sıralı bir dizide bir eleman arama O(N) lineer Sıralı olmayan bir dizide bir eleman arama O(N log N) n-log-n N elemanı böl-parçala-yut yöntemiyle sıralama O(N 2 ) ikinci dereceden O(N 3 ) üçüncü dereceden Bir grafikte iki düğüm arasındaki en kısa yolu bulma Ardarda gerçekleştirilen lineer denklemler O(2 N ) üssel Hanoi nin nin Kuleleri problemi

BÜYÜME HIZLARI 19 O(N 2 ) O(Nlog N) Kısa bir süre için i N 2 NlogN den daha iyi N

20 BİR PROGRAMIN ASIL ÇALIŞMA ZAMANINI HESAPLAMA (ÖRNEK) Algoritma ve algoritma analizi i kavramlarının dh daha ii iyi anlaşılabilmesi lbil iamacıyla bir problemin çözümü için tasarlanmış olan A ve B algoritmanı ele alalım. Bu algoritmaların özelliklerinin belirlendiğini, analizlerinin yapıldığını ve aşağıdaki sonuçların elde edildiğini düşünelim. Yukarıda A ve B algoritmaları için geçerli olan zaman formülleri verilmiştir. N, girdi boyutunu ifade etmektedir. Her iki algoritma için harcanan zaman farklıdır. Girdi boyutuna göre değişiklik göstermektedir.

21 BİR PROGRAMIN ASIL ÇALIŞMA ZAMANINI HESAPLAMA (ÖRNEK) A ve B algoritmalarının l girdi idiboyutuna göre harcadıkları dkl zamanların diyagramı şekil de gösterilmiştir.

22 BİR PROGRAMIN ASIL ÇALIŞMA ZAMANINI HESAPLAMA (ÖRNEK) A ve B algoritmalarının l harcadıkları zamanlar göz önünde bulundurularak, l analizleri aşağıda ayrı ayrı yapılmıştır.

23 BİR PROGRAMIN ASIL ÇALIŞMA ZAMANINI HESAPLAMA (ÖRNEK) A ve B algoritmalarının l harcadıkları zamanlar göz önünde bulundurularak, l analizleri aşağıda ayrı ayrı yapılmıştır.

ÖRNEKLER 24 1A 1. Aşağıda bir dizinin i i aritmetik ik ortalamasını bl bulan ve sonucu kullanıcıya kll geri döndüren bulortalama() adlı fonksiyonun kodu verilmiştir. Bu fonksiyonun yürütme zamanını gösteren T(n) bağıntısını elde ediniz?

ÖRNEKLER 25

ÖRNEKLER 26

ÖRNEKLER 27

ÖRNEKLER 28

ÖRNEKLER 29

ÖRNEKLER 30

ÖRNEKLER 31