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

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

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

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

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

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

O NOTASYONU. Abdullah Gazi Emre DAĞLI

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

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İ

Algoritmalar ve Karmaşıklık

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

Nesne Yönelimli Programlama

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

ALGORİTMA İ VE PROGRAMLAMA

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

Yazılım Mühendisliği 1

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

YZM 2116 Veri Yapıları

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);

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

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

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

YZM 2116 Veri Yapıları

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Algoritmik Program Tasarımı, Akış Şemaları ve Programlama. Bilgisayar Mühendisliğine Giriş 1

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI Bahar Yarıyılı

Veri Yapıları ve Algoritmalar

Veri Yapıları. for(i=1;i<n;i++) { ekle=d[i]; for (k=i 1; k>=0 && ekle<=d[k] ;k ) D[k+1]=D[k]; /* Geriye kaydırılıyor*/

{\} /\ Suhap SAHIN Onur GÖK

3. Bölüm Algoritmalar

Algoritmalar ve Programlama. Algoritma

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

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

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

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

Veri Yapıları ve Algoritmalar

Algoritma ve Akış Diyagramları

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

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

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

VERİ YAPILARI DATA STRUCTURE GİRİŞ

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

Ö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

II. DERECEDEN DENKLEMLER Test -1

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

1 PROGRAMLAMAYA GİRİŞ

Algoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları

Ö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.

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

C++ Dilinde Bazı Temel Algoritmalar

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Özyineleme (Recursion)

AVRASYA UNIVERSITY. Dersin Verildiği Düzey Ön Lisans (X ) Lisans ( ) Yüksek Lisans( ) Doktora( )

Bölüm 7. İfadeler ve atamalar ISBN

Dr. Fatih AY Tel: fatihay@fatihay.net

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

Algoritmalar. Doğrusal Zamanda Sıralama. Bahar 2017 Doç. Dr. Suat Özdemir 1

BMB204. Veri Yapıları Ders 12. Dizgi Eşleme (String Matching) Algoritmaları İleri Veri Yapıları

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

Dekleratif Programlama. Örnek : Aile Ağacı. SWI-Prolog. Prolog Dekleratif programlama dili

Yrd. Doç. Dr. Ümit ATİLA

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI

Veri ve Dosya Yapıları. Kütük Organizasyonu 1

Bölüm 1 PROGRAMLAMAYA GİRİŞ. Bölüm 2 ALGORİTMA

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

ALGORİTMA VE PROGRAMLAMA II

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

ALGORİTMA VE PROGRAMLAMA I

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

Yrd. Doç. Dr. Caner ÖZCAN

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

Java, Python ve Ruby Dillerinin Performans Karşılaştırması

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

Problem Set 1 Çözümler

BİL-142 Bilgisayar Programlama II

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

YZM 2116 Veri Yapıları

Öğr. Gör. Serkan AKSU 1

T.C. MARDİN ARTUKLU ÜNİVERSİTESİ MİDYAT MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI (UZAKTAN ÖĞRETİM) ÖNLİSANS PROGRAMI Eğitim Öğretim Yılı

İNÖNÜ ÜNİVERSİTESİ MALATYA MESLEK YÜKSEKOKULU DERS TANITIM FORMU. Kredisi AKTS Eğitim Dili Tipi: Zorunlu/ Saat

Bilgisayar Programlama (COMPE 102) Ders Detayları

Matlab da Dizi ve Matrisler. Mustafa Coşar

ALGORİTMA VE PROGRAMLAMA I

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir:

C++ Dilinde Bazı Temel Algoritmalar

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

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

Transkript:

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

2 Temel Kavramlar Algoritma: Bir problemin çözümünü belirli bir zamanda çözmek için sonlu sayıdaki adım-adım birbirini takip eden işlemlerdir. Program: Bir programlama dilinde bir algoritmanın gerçekleçtirilmesidir. Veri Yapısı: Problemin çözümü için gereken data'nın organize edilmesidir

3 Algoritmalar Sıralama En-kısa-yol problemi Süreç planlama Benzerlik Paketleme vs.

4 Algoritmalar Network alanında, Kriptografi alanında, Bilgisayar Grafiği alanında, Veritabanı alanında, Hesapsal biyoloji/geometri/işlem. Vs.

5 Algoritmik Problem Giriş? Girişin bir fonksiyonu olarak çıkış

6 Algoritmik Çözüm Giriş bilgileri Algoritma Girişle ilişkili çıkış bilgileri Algoritma giriş örnekleri üzerindeki işlemleri tanımlar Aynı algoritmik problem için farklı algoritmalar olabilir

7 Algoritmadan Beklenenler Algoritma bir problemin nasıl çözüleceğinin kesin tanımlamasıdır Algoritma her adımı komple tanımlamalıdır. Bir algoritma problemin olası tüm girişleri için çalışmak zorundadır. Algoritmalarda şu özellikler olmalıdır; Correct: Her giriş için uygun bir çıkış üretmelidir. Efficient: Olabildigince hızlı çalışmalıdır, olabildigince az hafıza kullanmalıdır.

8 Pseudo-code Pascal, C, Java veya diger diller: Kontrol yapıları (if then else, while ve for döngüleri) Atama işlemi ( ) A dizisinde erişilen eleman: A[i] Composite tip (record veya object) elemanı: A.b (veya b[a])

9 Örnek: Arama Algoritması

10 Örnek: Arama Algoritması

11 Algoritma Analizi Algoritma Analizi bilgisayar programlarının performans ve kaynak kullanımı üzerine teorik çalışmadır. Algoritma analizinde öncelikle ve özellikle performans üzerinde durulur. Bilgisayar Programlarında işlerin nasıl daha hızlı gerçekleştirilebileceği ele alınır.

12 Neden Performans? Bir bilgisayar programında performanstan daha önemli neler vardır? Doğruluk, Basitlik, Bakım kolaylığı, Kaynak maliyeti, Sağlamlık, İşlevsellik/modüler yapı, Güvenlik, Kullanıcı dostluğu/kullanım kolaylığı

13 Neden Performans? Performansı iyi olan bir program kullanıcıyı mutlu eder. Bir işin yapılabilir olması veya olmaması konusunda performans önemli bir kriterdir. Örneğin, zaman kısıtlaması olursa, işiniz başarılı görülmeyebilir. Bellek kullanımı yüksekse işe yaramayabilir.

14 Neden Performans? Daha önce yapılagelen bir işi yapıyorsanız burada performansın çok da bir önemi olmayabilir. Ancak amacınız, daha önce yapılamayan bir iş ise, o zaman performans sizin için öncelikli maddedir.

15 Algoritma Analizinde Temel Kavramlar Yürütme zamanı, Zaman karmaşıklığı, Alan maliyeti, Alan karmaşıklığı, En iyi, ortalama, en kötü durumlar.

16 Yürütme Zamanı (Running Time) Bir programın veya algoritmanın işlevini yerine getirebilmesi için, temel kabul edilen işlemlerden kaç adet yürütülmesi gerektiğini veren bir bağıntıdır. Bağıntının bağımsız değişkeni genel olarak eleman sayısıdır. Örneğin n elemanlı bir küme için yürütme zamanı T(n) şeklinde gösterilir. Temel İşlemler: Karşılaştırma, döngü çevrimi, aritmetik işlem vs.

17 Zaman Karmaşıklığı (Time Complexity) Bir algoritmanın asimptotik notasyona göre karmaşıklık mertebesini gösteren ifadedir. Genellikle algoritmanın çok fazla eleman sayısı olması durumunda gerekli işlemlerin düzeyini gösterir. Zaman karmaşıklığı yürütme zamanı bağıntısı T(n) de olduğu gibi açık bir bağıntı olmayıp asimptotik ifadelerle gösterilir.

18 Alan Maliyeti (Space cost) Bir programın veya algoritmanın işlevini yerine getirmesi için gerekli bellek alanını veren bir bağıntı veya değerdir. Alan maliyeti program kodu,yığın ve veri için gerekli tüm alanları kapsar. Program kodu için gerekli belek alanı veri iiçn gerekli bellek alanının yanında ihmal edilecek düzeyde ise yalnızca veri alanı hesaplaması yeterlidir. Ör: 2 bytelık tamsayı olan n elemanlı bir küme için alan maliyeti bağıntısı S(n)=2n şeklinde verilir.

19 Alan Karmaşıklığı (Space Complexity) Alan karmaşıklığı eleman sayısı n nin çok büyük değerleri için bellek alanı gereksiniminin artış mertebesini gösteren asimptotik ifadelerdir. Bu amaçla zaman karmaşıklığında kullanılan asimptotik ifadelerle gösterilir. Ör: Alan karnaşıklığı olarak O(n 2 ) verilirse bellek gereksiniminin n nin büyük değerleri için en kötü durumda karesel arttığı ifade edilmektedir.

20 En İyi Ortalama En Kötü Durumlar (Best-Average-Worst Cases) Yürütme zamanı, maliyet ve karmaşıklık hesaplanırken en iyi sonucun elde edildiği durum en iyi durum (best case) dur. En Kötü durum (worst case) ise en olumsuz koşulların gerçekleşmesi durumunda algoritmanın çözüm üretmesi için gerekli hesaplama sonucudur. Ör: Arama algoritması için en iyi durum aranan değerin dizinin ilk elemanı olması, en kötü durum ise anahtar değerin dizide bulunmamasıdır. Ortalama durum (Average case) ise giriş parametrelerinin en iyi durum ile en kötü durum arasında gelmesi, ortalama bir sonuç oluşturmasıdır.