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

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

Algoritma Analizi Big O

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

O NOTASYONU. Abdullah Gazi Emre DAĞLI

YZM 2116 Veri Yapıları

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

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

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

Selection Sort Insertion Sort

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

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

Bir algoritma aşağıdaki ğ dki özelliklere sahip komutların sonlu bir kümesidir.

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu

Örnek...3 : Aşağıdaki ifadelerden hangileri bir dizinin genel terim i olabilir?

Örnek...3 : Aşağıdaki ifadelerden hangileri bir dizinin genel terim i olabilir? Örnek...4 : Genel terimi w n. Örnek...1 : Örnek...5 : Genel terimi r n

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

Problem Set 1 Çözümler

Veri Yapıları ve Algoritmalar

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

ALGORİTMA İ VE PROGRAMLAMA

YMT219 Veri Yapıları. Yrd.Doç.Dr. Erkan TANYILDIZI

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

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Nesne Yönelimli Programlama

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Fonksiyonlar (Altprogram)

YMT316 Algoritma Analizi

C++ Dersi: Nesne Tabanlı Programlama

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Dr. Fatih AY Tel: fatihay@fatihay.net

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

Algoritmalara Giriş 6.046J/18.401J DERS 2

YMT219 Veri Yapıları. Yrd.Doç.Dr. Erkan TANYILDIZI

Diziler (Arrays) Çok Boyutlu Diziler

Zeki Optimizasyon Teknikleri

1 PROGRAMLAMAYA GİRİŞ

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

13.Konu Reel sayılar

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

F(A, N, K) // A dizi; N, K integer if N<0 then return K; if A[N]>K then K = A[N]; return F(A, N-1, K);

YMT219 VERİ YAPILARI ÖDEV-1

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

Rakam : Sayıları yazmaya yarayan sembollere rakam denir.

Algoritma Nedir? Algoritma

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

Ders 8: Metotlar. barisgokce.com

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

Algoritma ve Akış Diyagramları

Alıştırma 1: Yineleme

Dr. Fatih AY Tel: fatihay@fatihay.net

ALGORİTMA VE PROGRAMLAMA II

Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika

{\} /\ Suhap SAHIN Onur GÖK

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 1001

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

Döngü Komutları. Komutu. while Komutu Diğer Operatörler Bileşik Komut for Komutu. İçiçe Döngüler break ve continue Komutları

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Dr. Fatih AY Tel:

BLG 1306 Temel Bilgisayar Programlama

ALGORİTMA VE PROGRAMLAMA I

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

ALGORİTMA VE PROGRAMLAMA I

Algoritmalar ve Karmaşıklık

BİL1001 Bilgisayar Bilimlerine Giriş 1

#$% &'#(# Konular. Bits of Information. Binary Özellikler Superimposed Coding Signature Formation Deerlendirme


Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

BİLGİSAYAR PROGRAMLAMA

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Proje Adı: Sonlu Bir Aritmetik Dizinin Terimlerinin Kuvvetleri Toplamının İndirgeme Bağıntısıyla Bulunması.

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1

Algoritmalar. Sıralama Problemi ve Analizi. Bahar 2017 Doç. Dr. Suat Özdemir 1

biçimindeki ifadelere iki değişkenli polinomlar denir. Bu polinomda aynı terimdeki değişkenlerin üsleri toplamından en büyük olanına polinomun dereces

Karşılaştırma İşlemleri ve Koşullu İfadeler

ELN1001 BİLGİSAYAR PROGRAMLAMA I

11- FONKSİYONLAR (FUNCTIONS)

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

1. BÖLÜM Polinomlar BÖLÜM II. Dereceden Denklemler BÖLÜM II. Dereceden Eşitsizlikler BÖLÜM Parabol

Ayrık Fourier Dönüşümü

ÜNİTE MATEMATİK-1 İÇİNDEKİLER HEDEFLER ÜSTEL VE LOGARİTMA FONKSİYONLARI. Prof.Dr.Ahmet KÜÇÜK. Üstel Fonksiyon Logaritma Fonksiyonu

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

DOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

5.Hafta Alt Sınırları Sıralama Doğrusal-Zaman (linear time) Sıralaması (devam)

Fonksiyonlarda limiti öğrenirken değişkenlerin limitini ve sağdan-soldan limit kavramlarını öğreneceksiniz.

Program AkıĢ Kontrol Yapıları

Algoritma ve Akış Diyagramları

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

Algoritma ve Programlama II Recursive Fonksiyonlar Dosyalama

ise, a b=? (32) ile bölümünden kalan 64 ise sabit terimi kaçtır? (72)

printf("\nbilgilerini goruntulemek istediginiz ogrencinin numarasini girin: "); scanf("%d",&no);

Transkript:

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

2 Yürütme Zamanı (Running Time) Algoritmanın belirli bir işleme veya eyleme kaç kez gereksinim duyulduğunu gösteren bağıntıdır ve T(n) ile gösterilir. Temel hesap birimi olarak, programlama dilindeki deyimler seçilebildiği gibi döngü sayısı, toplama işlemi sayısı, atama sayısı, dosyaya erişme sayısı gibi işler de temel hesap birimi olarak seçilebilir.

3 Yürütme Zamanı (Running Time) Yürütme zamanı bağıntısı fiziksel gerçeğe yakın bir sonuç verir, ancak sapmalar da olabilir. Kabul edilen temel hesap birimi tüm hesaplar için aynı olmayabilir. ÖR: Bir tam sayı sayacın bir artırılmasıyla iki gerçel sayının çarpımı maliyeti farklı olabilir veya iki tam sayıyı karşılaştırmak ile iki diziyi karşılaştırma maliyetleri farklı olur.

4 Yürütme Zamanı (Running Time) ÖR: Aşağıdaki kodun yürütme zamanı bağıntısını belirleyiniz. float bulorta( float A[], int n) { float ortalama, toplam=0; int k; } for (k=0; k<n; k++) toplam+=a[k]; ortalama=toplam/n; return ortalama;

5 Yürütme Zamanı (Running Time) ÖR: Aşağıdaki kodun yürütme zamanı bağıntısını belirleyiniz. void toplammatris(a, B, C) int A[n][m], B[n][m], C[n][m]; { int i,j; for (i=0; i<n; i++) for (j=0; j<m; j++) C[i][j]=A[i][j]+B[i][j] }

6 Karmaşıklık Algoritmaları karşılaştırabilmek için bir algoritmanın zorluk derecesi ölçümüne Computational Complexity denir. Computational complexity bir algoritmanın gerçekleştirilmesi için gereken maliyeti veya çabayı ifade eder. Maliyet veya çaba zaman (time) ve kullanılan alan (space) ile ifade edilir.

7 Asimptotik Karmaşıklık Algoritmalarda t (süre) ve n (giriş boyutu) arasındaki ilişki çoğu zaman çok karmaşıktır. Fonksiyon içerisindeki önemsiz kısımlar ve katsayılar atılarak basitleştirilir ve gerçek fonksiyona göre yaklaşık bir değer bulunur. Elde edilen bu yeni etkinlik ölçümüne Asymptotic Complexity denir. Genellikle girişin büyümesine bağlı olarak fonksiyonun büyümesinde en büyük etkiye sahip olan parametre alınır.

8 Asimptotik Karmaşıklık n t(n)=60n 2 +5n+1 60n 2 10 6.051 6.000 100 600.501 600.000 1.000 60.005.001 60.000.000 10.000 6.000.050.001 6.000.000.000

9 Asimptotik Karmaşıklık

10 Asimptotik Analiz Amaç: detaylardan kurtularak çalışma süresi analizini basitleştirmek Sayılar için rounding işlemi:1,000,001 1,000,000 Fonksiyonlar için rounding işlemi: 3n 2 n 2 Niteliğini belirlemek (Capturing the essence): belirlenen limit içerisinde girişin boyutuna göre algoritmanın çalışma süresinin nasıl arttığının bulunması

11 Asimptotik Analiz Algoritmaların best, worst ve average case çalışma süreleri bir fonksiyonla ifade edilebilir. Ancak kesin sürenin hesaplanması oldukça zor ve karmaşıktır.

12 Asimptotik Notasyonlar big-o O-ifadesi asymptotic upper bound f(n) = O(g(n)), eğer sabit bir c ve n 0 değeri için f(n) c.g(n) bütün n n 0 değerleri için doğruysa f(n) ve g(n) pozitif değere sahip fonksiyonlardır. worst-case analiz için kullanılır

13 Asimptotik Notasyonlar Big O

14 Asimptotik Notasyonlar Big O Örnek: 3n 2 +2n+5 = O(n 2 ) olduğunu gösteriniz. 10 n 2 = 3n 2 + 2n 2 + 5n 2 3n 2 + 2n + 5, n 1 c = 10, n 0 = 1

15 Asimptotik Notasyonlar Big O O-ifadesi için genellikle en basit formül kullanılır. Örnek: 3n 2 +2n+5 = O(n 2 ) Aşağıdaki örneklerde doğrudur ancak genellikle kullanılmazlar. 3n 2 +2n+5 = O(3n 2 +2n+5) 3n 2 +2n+5 = O(n 2 +n) 3n 2 +2n+5 = O(3n 2 )

16 Asimptotik Notasyonlar Big W Big-Omega W ifadesi Asymptotic Lower Bound f(n) = W (g(n)), eğer sabit bir c ve n 0 değeri için c.g(n) f(n) bütün n n0 değerleri için doğruysa best-case çalışma süresi veya lower bound tanımlamasında kullanılır.

17 Asimptotik Notasyonlar Big W

18 Asimptotik Notasyonlar Big W Basit kural: Küçük dereceden terimler ve sabitler atılır. 50 n log n ifadesi O(n log n) şeklinde gösterilir. 7n - 3 ifadesi O(n) 8n 2 log n + 5n 2 + n ifadesi O(n 2 log n) şeklinde ifade edilir.

19 Asimptotik Notasyonlar Big- Big-Theta İfadesi asymptotic tight bound f(n) = (g(n)), eğer sabit c 1, c 1, ve n 0, değerleri için c 1 g(n) f(n) c 2 g(n) bütün n n 0 değerleri için doğruysa.

20 Asimptotik Notasyonlar Little-o "Little-o" ifadesi f(n)=o(g(n)) Örn: 2n = o(n 2 ) Her c>0 için, bir n 0 değeri vardır ve 0 f(n) c. g(n) ifadesi bütün n n 0 değerleri için doğrudur. Çalışma sürelerinin karşılaştırılması için kullanılır. Eğer f(n)=o(g(n)), ise g(n), f(n) fonksiyonundan daha ağırlıklıdır (dominates).

21 Asimptotik Notasyonlar - Little- "Little-omega" ifadesi f(n)= (g(n)) Örn: n 2 /2 = (n) Her c>0 için, bir n 0 değeri vardır ve f(n) > c.g(n) 0 ifadesi bütün n n 0 değerleri için doğrudur. Çalışma sürelerinin karşılaştırılması için kullanılır. Eğer f(n)= (g(n)), ise f(n), g(n) fonksiyonundan daha ağırlıklıdır. (dominates).

22 Asimptotik Notasyonlar f(n) = O(g(n)) gerçekte f(n) O(g(n)) anlamındadır.