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

Save this PDF as:
Ebat: px
Şu sayfadan göstermeyi başlat:

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

Transkript

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

2 Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar

3 Temel Kavramlar Algoritma: Bir problemin çözümüne yönelik işlem basamaklarının sıralı olarak ifade edilmesidir. Program: Probleme ilişkin çözümlerin, herhangi bir programlama dili kullanarak, bilgisayarın anlayacağı komutlar dizisi şeklinde yazılmasına program, bilgisayarda kullanılan programların genel adına da yazılım denir. 3

4 Algoritma Analizi Algoritma, sistem kaynaklarının (çalışma süresi, bellek tüketimi vb.) önemli olduğu durumlarda etkili bir şekilde geliştirilmelidir. Bir problemin çözümünde kullanılabilecek algoritmalardan en etkin olanı seçilmelidir. eden Algoritmayı Analiz Ederiz? Algoritmanın performansını ölçmek için Daha iyisi mümkün mü? Farklı algoritmalarla karşılaştırmak için 4

5 Algoritma Analizi Zaman Karmaşıklığı: Problemi çözmek için algoritmanın harcadığı zamanın analizi Belirli bir giriş verisine karşılık yapılan karşılaştırma, atama, toplama, çıkarma vb. işlemlerin sayısı üzerinden hesaplanır. Yer karmaşıklığı: Gerekli belleğin analizi Kullanılan veri yapılarıyla ilgilidir. 5

6 Algoritmaların Analizi Bir algoritmanın çalışma süresini analiz etmek için o programın kaç adımda bittiğini (yürütme süresi) belirleriz. Özyinelemeli algoritmaların analizi farklı yapılır. Eğer analiz edilecek program (ya da fonksiyon) kendi kendini çağırıyorsa bu programa özyinelemeli program denir. 6

7 Örnek I: Dizideki sayıların toplamını bulma int Topla(int A[], int ) { int toplam = 0; Bu fonksiyonun yürütme zamanı ne kadardır? for (i=0; i < ; i++){ toplam += A[i]; } //Bitti-for return toplam; } //Bitti-Topla 7

8 Örnek I: Dizideki sayıların toplamını bulma İşlem int Topla(int A[], int ) { int topla = 0; sayısı 1 for (i=0; i < ; i++){ topla += A[i]; } //Bitti-for return topla; } //Bitti-Topla Toplam: = + Çalışma zamanı: T() = + = O() dizideki eleman sayısı Giriş verisi 8

9 Örnek II: Dizideki bir elemanın aranması int Arama(int A[], int, int sayi) { int i = 0; while (i < ){ if (A[i] == sayi) break; i++; } //bitti-while if (i < ) return i; else return -1; } //bitti-arama İşlem sayısı Toplam: 1+3*+1+1 = 3+3 O() 9

10 Örnek II: Dizideki bir elemanın aranması En iyi çalışma zamanı nedir? Döngü sadece bir kez çalıştı=>t(n) = 6 Ortalama(beklenen) çalışma zamanı nedir? Döngü / kez çalıştı =>T(n)=3*n/+3 = 1.5n+3 En kötü çalışma zamanı nedir? Döngü kez çalıştı =>T(n) = 3n+3 10

11 Algoritmaların en kötü durum analizi Bir algoritmanın sadece E KÖTÜ durumdaki çalışma zamanına bakılır. eden? En kötü durum çalışma zamanında bir üst sınırdır ve o algoritma için verilen durumdan daha uzun sürmeyeceği garantisi verir. Bazı algoritmalar için en kötü durum oldukça sık rastlanır. Arama algoritmasında, aranan öğe genellikle dizide olmaz dolayısıyla döngü kez çalışır. Ortalama çalışma zamanı genellikle en kötü çalışma zamanı kadardır. Arama algoritması için hem ortalama hem de en kötü çalışma zamanı doğrusal fonksiyondur. 11

12 Yürütme Zamanından Big O Hesabı T ( ) An Bn C Algoritmanın karmaşıklığı T() yukarıdaki gibi hesaplanmış olsun. Bu algoritmanın Big-O notasyonuna göre karmaşıklığını hesaplayınız? An n Bn n C n 1

13 Yürütme Zamanından Big O Hesabı T ( ) An Bn C Çözüm: Eşitliğin sağ tarafı n ye bölünür. An n Bn n C n Burada n giderken ikinci ve üçüncü terim sıfıra yaklaşır. İlk terim yani A sabit olarak kalır. A B n C n Öyleyse karmaşıklık: O( ) 13

14 Örnek III: İç içe döngüler for (i=1; i<=; i++){ for (j=1; j<=; j++){ printf( Foo\n ); } //bitti-içteki for } //bitti-dıştaki for Prinf fonksiyonu kaç kez çalıştırıldı? Veya Foo yazısı ekrana kaç kez yazılır? T( ) 1 * i1 j1 i1 14

15 Örnek IV: İç içe döngüler T() nedir? toplam = 0; for(int i =1; i<=; i++) toplam += i*i; for(int k =1; k<=; k++) for(int j =1; j<=; j++) toplam++; T( ) 1 1 * i1 k1 j1 15

16 Örnek V: Matris Çarpımı /* İki boyutlu dizi A, B, C. Hesapla C = A*B */ for (i=0; i<; i++) { for (j=0; j<; j++) { C[i][j] = 0; for (int k=0; k<; k++){ C[i][j] += A[i][k]*B[k][j]; } //bitti-en içteki for } //bitti-içteki for } //bitti-dıştaki for T( ) 1 1 (1 1 1) 3 i0 j0 k0 16

17 Örnek VI: İkili Arama Problem: Sıralı bir dizi veriliyor ve bir sayıyı arıyorsunuz. Doğrusal arama T(n) = 3n+ (En kötü durum) Daha iyisi yapılabilir mi? Ö.g. Aşağıdaki sıralı dizide 55 sayısını arayalım

18 Örnek VI: İkili Arama Dizi sıralanmış olduğundan, dizinin ortasında bulunan sayı ile aranan sayıyı karşılaştırarak arama boyutunu yarıya düşürülür ve bu şekilde devam edilir. Örnek: 55 i arayalım sol orta ( sol sağ) sağ sol orta sağ Elendi 18

19 İkili arama (devam) Elendi sol orta Elendi orta 55 i bulduk Başarılı arama 57 yi aradığımızda, bir sonraki işlemde başarısız bir şekilde sonlanacak. 19

20 İkili Arama (devam) < hedef? > hedef sol sağ Hedefi ararken herhangi bir aşamada, arama alanımızı sağ ile sol arasındaki alana kısıtlamış oluyoruz. sol un solunda kalan alan hedeften küçüktür ve bu alan arama alanından çıkarılır. sağ ın sagında kalan alan hedeften büyüktür ve bu alan arama alanından çıkarılır. 0

21 İkili Arama - Algoritma // Aranan sayının indeksini döndürür aranan sayı bulunamazsa -1 döndürür. int ikiliarama(int A[], int, int sayi){ sol = 0; sag = -1; while (sol <= sag){ int orta = (sol+sag)/; // Test edilecek sayının indeksi if (A[orta] == sayi) return orta; // Aranan sayı bulundu. İndeksi döndür else if (sayi < A[orta]) sag = orta 1; // Sağ tarafı ele else sol = orta+1; // Sol tarafı ele } //bitti-while return 1; // Aranan sayı bulunamadı } //bitti-ikiliarama En kötü çalışma zamanı: T(n) = 3 + 5*log. eden? 1

22 Örnek VII: Logaritma int basamak_sayisi(int ){ int i, sayi = 1; while( > 1){ sayi++; = / ; } } O(log) 1 k k log k

23 Çalışma zamanı Asimptotik otasyon Bir problemi çözmek için A ve B şeklinde iki algoritma verildiğini düşünelim. Giriş boyutu için aşağıda A ve B algoritmalarının çalışma zamanı T A ve T B fonksiyonları verilmiştir. Hangi algoritmayı seçersiniz? Giriş Boyutu () 3

24 Running Time Asimptotik otasyon (devam) büyüdüğü zaman A ve B nin çalışma zamanı: Şimdi hangi algoritmayı seçersiniz? Giriş Boyutu () 4

25 Asimptotik otasyon (devam) Genel olarak, asimptotik notasyon, eleman sayısı n nin sonsuza gitmesi durumunda algoritmanın, benzer işi yapan algoritmalarla karşılaştırmak için kullanılır. Eleman sayısının küçük olduğu durumlar pratikte mümkün olabilir fakat bu birçok uygulama için geçerli değildir. Verilen iki algoritmanın çalışma zamanını T1() ve T() fonksiyonları şeklinde gösteriyoruz. Fakat hangisinin daha iyi olduğunu belirlemek için bir yol belirlememiz gerekiyor. (asimptotik olarak daha küçük gibi) Asimptotik notasyonlar Büyük-O, W, Q notasyonları 5

26 Karşılaşılan Genel Fonksiyonlar İsim Büyük-O Yorum Sabit O(1) Yenilmez! Logaritmik O(log) İyi hazırlanmış arama algoritmalarının tipik zamanı Doğrusal O() Hızlı bir algoritmadır. tane veriyi girmek için gereken zaman. log O(log) Çoğu sıralama algoritması Karesel O( ) Veri miktarı az olduğu zamanlarda uygun (<1000) Kübik O( 3 ) Veri miktarı az olduğu zamanlarda uygun (<1000) Üssel O( ) Veri miktarı çok az olduğunda uygun (n<=0) 6

27 Örnekler Büyük-O O(1) O(log) O() O(log) O( ) O( 3 ) Yorum elemanlı bir dizinin i. Elemanına bir değer atanması Sıralı bir listenin elemanları içinde ikili arama elemanlı bir dizinin tüm elemanlarının ekrana yazdırılması Bazı hızlı sıralama algoritmaları (merge sort) gibi Basit sıralama algoritmaları (selection sort gibi) Üç boyutlu bir tamsayı tablosundaki her elemanın değerini artıran algoritma 7

28 Karşılaşılan Genel Fonksiyonlar (devam) 8

29 Tanım: Verilen bir tamsayı listesi içerisinde/dizisinde elemanları komşu olmak şartıyla hangi (bitişik) alt dizi en yüksek toplamı verir? Örneğin: Örnek: Maksimum Alt Dizi Toplamı { -,11,-4,13,-5, } Cevap=0 { 1,,-5,4,7,- } Cevap=11 { 1,5,-3,4,-,1 } Cevap=7 Bu problemi çözen çok sayıda algoritma vardır. 9

30 Çözüm-1 Kaba Kuvvet Algoritması public static int maxaltdizit( int[] a){ } int maxtop = 0; for(int i=0; i<a.length; i++) for(int j=i; j<a.length; j++){ } int top=0; for(int k=i; k<=j; k++) top += a[k]; if(top > maxtop){ } return maxtop; maxtop = top; int bas = i; int son = j; // alt dizinin başlangıcı // alt dizinin sonu Bu algoritmanın karmaşıklığı nedir? n 3 +6n +n+ O(n 3 ) Daha iyisi yapılabilir mi? 30

31 Çözüm- Geliştirilmiş Algoritma public static int maxaltdizit(int[] a) { } int maxtop = 0; for (int i = 0; i < a.length; i++) { } int top = 0; for (int j = i; j <= a.length; j++) { } top += a[j]; if (top > maxtop) { } return maxtop; maxtop = top; int bas = i; int son = j; // alt dizinin başlangıcı // alt dizinin sonu Bu algoritmanın karmaşıklığı nedir? 6n +n+ O(n ) Daha iyisi yapılabilir mi? 31

32 Çözüm-3 Doğrusal Algoritma public static int maxaltdizit(int[] a) { int maxtop = 0; int top = 0; for (int i=0, j=0; j<=a.length; j++) { } top += a[j]; if (top > maxtop) { maxtop = top; int bas = i; int son = j; } else if (top<0){ } i = j + 1; top = 0; return maxtop; // alt dizinin başlangıcı // alt dizinin sonu 9n+3 O(n) Bu algoritmanın karmaşıklığı nedir? Daha iyisi yapılabilir mi? } 3

33 Maksimum Alt Dizi Toplamı Çalışma Süresi Çeşitli Maksimum Alt Dizi Toplamı algoritmaları için çalışma süreleri aşağıda verilmiştir. (saniye cinsinden) O( 3 ) O( ) O( log ) O() 10 0, , , , , , , , ,3111 0, , , , , , A 13,17 0, , A A 0, ,

34 Özyinelemeli Algoritmaların Analizi Özyinelemeli algoritmaların analizinin farklı yapılmasının nedeni: programın çalışma süresinin sadece yapılan işlemlerle değil aynı zamanda programın kendi çalışma süresinin bir fonksiyonuna bağlı olmasıdır. int faktoriyel(int ){ if( <= 1) return 1; else return * faktoriyel(-1); } 34

35 Özyinelemeli Algoritma Örnek - I int faktoriyel(int ){ if( <= 1) return 1; else return * faktoriyel(-1); } girdisi için çalışma süresi yine faktöriyel 1 girdisi için çalışma süresine bağlıdır. Matematiksel olarak: f (1) 1 f ( ) f ( 1) 1 Eşitliğin sağ tarafı işlem miktarını göstermektedir. 35

36 Özyinelemeli Algoritma Örnek - I Faktöriyel fonksiyonun çalışma zamanını bulabilmek için özyinelemeli denklem sistemini çözmemiz gerekir. f() = f( 1) + 1 f(-1) = f( ) + 1 f(-) = f( 3) + 1 f() = f(1) + 1 Eşitlikleri taraf tarafa toplarsak, f(-1), f(-),, f() sadeleşir ve geriye kalan ifade: f() = f(1) + 1 f() = O() 36

37 Özyinelemeli Algoritma Örnek - II int basamak_sayisi(int ){ if( == 1) return 1; else return 1 + basamak_sayisi( / ); } Bu fonksiyonun çalışma süresi (girdi ) yine bu fonksiyonun (girdi /) çalışma süresine bağlıdır. b(1) 1 b( ) b( / ) 1 Eşitliğin sağ tarafı yapılacak işlemin adedidir. 37

38 Özyinelemeli Algoritma Örnek - II 38 1 ) (... 1 ) ( ) ( 1 ) ( ) ( 1 ) ( ) ( b b b b b b b b k k k k k k İfadeler taraf tarafa toplanır.

39 Özyinelemeli Algoritma Örnek - II Devamı b( k ) b(1) k b( k ) k 1 b( ) log 1O(log ) 39

40 Big O otasyonu Zaman Karmaşıklığı Paul Bechman tarafından tanıtılmıştır. Zaman karmaşıklığında üst sınırı gösterir. Bu notasyon bir çok ifadeyi sadeleştirmemizi sağlar. Big Omega otasyonu W Big O notasyonunun tam tersidir. Zaman karmaşıklığında alt sınırı gösterir. Omega ile ölçülen değerden daha hızlı bir değer elde edilemez. Big Theta otasyonu Q Bu notasyon Big O notasyonu ile Big Omega notasyonu arasında ortalama bir karmaşıklığı ifade eder. 40

41 Sıkça Yapılan Hatalar Karmaşıklığı bulmak için sadece döngüleri saymakla yetinmeyin. içi içe döngünün 1 den kadar döndüğünü düşünürsek karmaşıklık O( 4 ) olur. O( ) veya O( +) gibi ifadeler kullanmayın. Sadece baskın terim kullanılır. Öndeki sabitler kaldırılır. İç içe döngüler karmaşıklığı direk etkilerken art arda gelen döngüler karmaşıklığı etkilemez. 41

42 Dersin Sonu

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

BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN 0904.01036. atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN 0904.01036 atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİŞKEK 2012 Ahmet Atakan

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BÖLÜM - 2 Bu bölümde, Algoritma Analizi, Çalışma Zamanı Analizi

Detaylı

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

Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR Algoritmaların Karşılaştırılması Doç. Dr. Aybars UĞUR Giriş Bir programın performansı genel olarak programın işletimi için gerekli olan bilgisayar zamanı ve belleğidir. Bir programın zaman karmaşıklığı

Detaylı

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

VERİ YAPILARI DERS NOTLARI BÖLÜM 2 ALGORİTMA ANALİZİ. Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 2 ALGORİTMA ANALİZİ Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. ALGORİTMA TANIMI Verilen herhangi bir sorunun çözümüne ulaşmak

Detaylı

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ Algoritma Analizi Çerçevesi Algoritma Analizinde Göz Önünde Bulundurulması Gerekenler Neler? Algoritmanın Doğruluğu (Correctness) Zaman

Detaylı

YMT219 VERİ YAPILARI ÖDEV-1

YMT219 VERİ YAPILARI ÖDEV-1 YMT219 VERİ YAPILARI ÖDEV-1 1. İkiliBul yordamı aşağıda verilmiştir. İkiliBul yordamı A dizisi içerisinde 2 tane eşit sayı bulursa true bulamazsa false döndürmektedir. public boolean ikilibul(int[] A){

Detaylı

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

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1 Algoritmalar Arama Problemi ve Analizi Bahar 2016 Doç. Dr. Suat Özdemir 1 Arama Problemi Sıralama algoritmaları gibi arama algoritmaları da gerçek hayat bilgisayar mühendisliği problemlerinin çözümünde

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 SIRALAMA ALGORİTMALARI Sunu Planı Büyük O Notasyonu Kabarcık Sıralama (Bubble Sort) Hızlı Sıralama (Quick Sort) Seçimli Sıralama (Selection Sort) Eklemeli Sıralama (Insertion

Detaylı

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

VERİ YAPILARI VE PROGRAMLAMA (BTP104) VERİ YAPILARI VE PROGRAMLAMA (BTP104) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

Algoritmalar ve Karmaşıklık

Algoritmalar ve Karmaşıklık Algoritmalar ve Karmaşıklık Ders 11 Algoritma Ayrık matematikte karşılaşılan bir çok problem sınıfı mevcuttur. Örneğin, verilen tamsayı grubu içindeki en büyük olanının bulunması, verilen bir kümenin bütün

Detaylı

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

Yrd. Doç. Dr. Ümit ATİLA Yrd. Doç. Dr. Ümit ATİLA Sıralama Bir grup veriyi azalan veya artan şekilde yerleştirme. Bilgisayar sistemleri için veri sıralama çok önemlidir. Sıralama işlemi, hem arama işlemlerini hem de bir grup veriyi

Detaylı

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

Algoritma Analizi. Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan Karmaşıklık Giriş 1 Algoritma Analizi 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?

Detaylı

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

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü 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

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 9 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Dizileri Fonksiyonlara Dizileri Fonksiyonlara Bir dizi argümanını fonksiyon içinde bir değer olarak kullanabilmek

Detaylı

Alıştırma 1: Yineleme

Alıştırma 1: Yineleme Alıştırma 1: Yineleme Alıştırma 2: Yineleme H10->H2 çevrimini yapınız 7 2 1 3 2 1 1 1 2 0 Hafta 3: Yineleme Alıştırmaları(1) E1. (44/174) S değerini yineleme kullanarak hesap ediniz S = 1 + 2 + 3 + n Hafta3:

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi

Detaylı

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

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları BLM-112 PROGRAMLAMA DİLLERİ II Ders-7 Sıralama Algoritmaları Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Sıralama Bir grup veriyi azalan veya artan şekilde yerleştirme.

Detaylı

VERİ YAPILARI YAZ OKULU. Teknoloji Fakültesi - Bilgisayar Mühendisliği Öğr.Gör.Günay TEMÜR

VERİ YAPILARI YAZ OKULU. Teknoloji Fakültesi - Bilgisayar Mühendisliği Öğr.Gör.Günay TEMÜR VERİ YAPILARI YAZ OKULU Bilgisayarda verinin saklanması (tutulması) ve organizasyonu için bir yoldur. Ne için gereklidir? Veri Yapıları Dersinin Amacı Gelişen ve sürekli büyüyen bilgi dünyasında veriye

Detaylı

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

f(x) ve g(x) reel sayılarda tanımlı iki fonksiyon olmak üzere, x > k olacak şekilde bir k vardır öyle ki, Algoritma Karmaşıklığı ve Büyük O Gösterimi (Big O Notation) Yazdığımız bir algoritmanın doğru çalıştığından emin olmakla birlikte bu algoritmayı, daha önce yazılmış ve aynı sonucu veren başka algoritmalarla

Detaylı

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

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü 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

Detaylı

Algoritma Analizi Big O

Algoritma Analizi Big O Algoritma Analizi Big O 0 {\} /\ Suhap SAHIN Onur GÖK Giris Verimlilik Karsılastırma Giris Hangisi daha iyi? Hangi kritere göre? Giris Hangisi daha iyi? Hangi kritere göre? Giris Giris? Verimin ölçülmesi

Detaylı

O NOTASYONU. Abdullah Gazi Emre DAĞLI 0804.01026

O NOTASYONU. Abdullah Gazi Emre DAĞLI 0804.01026 O NOTASYONU Abdullah Gazi Emre DAĞLI 0804.01026 Program Çalışma Hızı ve Bellek Gereksinimi Programın çalışma hızı karmaşıklıkla ifade edilir; bu kavram zaman birimiyle ifade edilmeyip doğrudan işlem adedi

Detaylı

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

Algoritmalar. Sıralama Problemi ve Analizi. Bahar 2017 Doç. Dr. Suat Özdemir 1 Algoritmalar Sıralama Problemi ve Analizi Bahar 2017 Doç. Dr. Suat Özdemir 1 Sıralama Problemi ve Analizi Bu bölümde öncelikle bir diğer böl-ve-yönet yöntemine dayalı algoritma olan Quick Sort algoritması

Detaylı

b) Algoritmanızın en kötü durumda işlem zamanını asimptotik olarak bulunuz

b) Algoritmanızın en kötü durumda işlem zamanını asimptotik olarak bulunuz 2014 Soru 1. (15 puan) 5,2,4,1,15,8,11,13,7,6 dizisinin elemanlarından maksimum özellikli bir yığın(heap) oluşturulmasını adım adım yazınız. Heapsort algoritmasının yardımıyla yapılacak sıralamayı anlatınız.

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama

Detaylı

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 YZM 1105 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 6. BÖLÜM 2 Çok Boyutlu Diziler Çok Boyutlu Dizi 3 Bir dizi aşağıdaki gibi bildirildiğinde

Detaylı

ALGORİTMA İ VE PROGRAMLAMA

ALGORİTMA İ VE PROGRAMLAMA 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

Detaylı

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#3: ALGORİTMA ANALİZİ#2 YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#3: ALGORİTMA ANALİZİ#2 Özyineli Olmayan (Nonrecursive) Algoritmaların Matematiksel Analizi En büyük elemanı bulma problemi En Büyük Elemanı Bulma Problemi Girdi

Detaylı

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

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 2 hafta Ödev No : 7 ****(ilk 3 soru çıktı üzerinde el

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Derse Giriş Ders Web Sitesi: www.canerozcan.net Ofis Saatleri: Salı 11:00-13:00 Perşembe 15:30-17:30 ya da email ile randevu alınız: canerozcan@karabuk.edu.tr Kaynak Kitaplar:

Detaylı

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

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü ALGORİTMA ANALİZİ Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü 2 Özyinelemeler veya artık teknik Türkçeye girmiş olan rekürsiflik en çok duyulan fakat kullanımında zorluklar görülen tekniklerdendir.

Detaylı

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

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu Öğr. Gör. M. Ozan AKI r1.0 Algoritmalar (Algorithms) Algoritma, bir problemin çözümünü sağlayan ancak deneme-yanılma ve sezgisel çözüme karşıt bir

Detaylı

Sınav Dağılım & IMKB Endeks

Sınav Dağılım & IMKB Endeks Sınav Dağılım & IMKB Endeks Ege Üniversitesi Bilgisayar Mühendisliği Veri Yapıları Proje-1 Hüseyin YAŞAR 05-06-7657 Didem KAYALI 05-06-7669 Umut BENZER 05-06-7670 Özlem GÜRSES 05-07-8496 Sürüm: 0.2 Bölüm

Detaylı

VERİ YAPILARI DATA STRUCTURE GİRİŞ

VERİ YAPILARI DATA STRUCTURE GİRİŞ VERİ YAPILARI DATA STRUCTURE GİRİŞ Veri Yapısı Nedir O Verinin ve bilginin bellekte nasıl organize edildiğini, bellekte tutulma biçimini ifade eder. O Tüm programlama dillerinin, genel olarak, tamsayı,

Detaylı

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

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2 PROGRAMLAMA Bir problemin çözümü için belirli kurallar ve adımlar çerçevesinde bilgisayar ortamında hazırlanan komutlar dizisine programlama denir. Programlama Dili: Bir programın yazılabilmesi için kendine

Detaylı

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

YMT219 Veri Yapıları. Yrd.Doç.Dr. Erkan TANYILDIZI YMT219 Veri Yapıları Yrd.Doç.Dr. Erkan TANYILDIZI 1 2 Ders Kitapları ve Yardımcı Kaynaklar Veri Yapıları ve Algoritmalar Dr. Rifat ÇÖLKESEN, Papatya yayıncılık Data Structures and Problem Solving Using

Detaylı

Ö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

Ö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 DİZİLER Tanım kümesi pozitif tam sayılar kümesi olan her fonksiyona dizi denir. Örneğin f : Z + R, f (n )=n 2 ifadesi bir dizi belirtir. Diziler değer kümelerine göre adlandırılırlar. Dizinin değer kümesi

Detaylı

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

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); 2009-2010 BAHAR DÖNEMİ MC 689 ALGORİTMA TASARIMI ve ANALİZİ I. VİZE ÇÖZÜMLERİ 1. a) Böl ve yönet (divide & conquer) tarzındaki algoritmaların genel özelliklerini (çalışma mantıklarını) ve aşamalarını kısaca

Detaylı

DİZİLER ÖRNEK UYGULAMALAR

DİZİLER ÖRNEK UYGULAMALAR TEK BOYUTLU DİZİLER Diziye girilen 10 sayıdan tek ve çift olanların sayısını veren program: int dizi[10],tek=0,cift=0; for(int i=0;i

Detaylı

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

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Diziler Dizi Tanımlama ve İlk Değer Atama Dizi Elemanlarının Kullanılması Dizi İşlemleri Java da Diziler JAVA DA DİZİLER 4 Dizi; tek bir veri tipinde,

Detaylı

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

YMT219 Veri Yapıları. Yrd.Doç.Dr. Erkan TANYILDIZI YMT219 Veri Yapıları Yrd.Doç.Dr. Erkan TANYILDIZI 1 2 Ders Kitapları ve Yardımcı Kaynaklar Veri Yapıları ve Algoritmalar Dr. Rifat ÇÖLKESEN, Papatya yayıncılık Data Structures and Problem Solving Using

Detaylı

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

3.Hafta Master Teorem ve Böl-Fethet Metodu 1 3.Hafta Master Teorem ve Böl-Fethet Metodu 2 Ana Metod (The Master Method) Ana method aşağıda belirtilen yapıdaki yinelemelere uygulanır: T(n) = at(n/b) + f (n), burada a 1, b > 1, ve f asimptotik olarak

Detaylı

BLM 112- Programlama Dilleri II. Hafta 9 String Fonksiyonları Sıralama & Arama

BLM 112- Programlama Dilleri II. Hafta 9 String Fonksiyonları Sıralama & Arama 1 BLM 112- Programlama Dilleri II Hafta 9 String Fonksiyonları Sıralama & Arama Dr. Öğr. Üyesi Caner Özcan Bilim doğanın dilini anlama çabasıdır. O dili anlayan doğayı dost, anlamayan düşman bilir. String

Detaylı

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI YZM 2116- VERİ YAPILARI DERS#9: HASH FONKSİYONLARI İÇERİK Bu bölümde, Giriş Hash Tabloları Hash Fonksiyonu Çakışma (Collision) Ayrık Zincirleme Çözümü Linear Probing Çözümü Quadratic Probing Çözümü konusuna

Detaylı

TAMSAYILAR. 9www.unkapani.com.tr. Z = {.., -3, -2, -1, 0, 1, 2, 3, } kümesinin her bir elemanına. a, b, c birer tamsayı olmak üzere, Burada,

TAMSAYILAR. 9www.unkapani.com.tr. Z = {.., -3, -2, -1, 0, 1, 2, 3, } kümesinin her bir elemanına. a, b, c birer tamsayı olmak üzere, Burada, TAMSAYILAR Z = {.., -, -, -, 0,,,, } kümesinin her bir elemanına tamsayı denir. Burada, + Z = {,,,...} kümesine, pozitif tamsayılar kümesi denir. Z = {...,,,,} kümesine, negatif tamsayılar kümesi denir.

Detaylı

Algoritmalara Giriş 6.046J/18.401J

Algoritmalara Giriş 6.046J/18.401J Algoritmalara Giriş 6.046J/18.401J DERS 1 Algoritmaların Çözümlemesi Araya yerleştirme sıralaması Asimptotik çözümleme Birleştirme sıralaması Yinelemeler Prof. Charles E. Leiserson Dersle ilgili bilgiler

Detaylı

Yrd. Doç. Dr. A. Burak İNNER

Yrd. Doç. Dr. A. Burak İNNER Yrd. Doç. Dr. A. Burak İNNER Kocaeli Üniversitesi Bilgisayar Mühendisliği Yapay Zeka ve Benzetim Sistemleri Ar-Ge Lab. http://yapbenzet.kocaeli.edu.tr DOĞRUSAL OLMAYAN (NONLINEAR) DENKLEM SİSTEMLERİ Mühendisliğin

Detaylı

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1 Algoritmalar Heap Sort Bahar 2017 Doç. Dr. Suat Özdemir 1 Heap Sort Heap Sort algoritması Merge Sort ve Insertion Sort algoritmalarının iyi özelliklerini bir arada toplar. Algoritma Insertion Sort gibi

Detaylı

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN GİRİŞ Ekrana «Merhaba Java» şeklinde bir mesajı 100 defa yazmak istediğinizi düşünelim. Aşağıdaki komut satırını 100 kez yazmak sıkıcı

Detaylı

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER Dizi, aynı tipteki verilere tek bir isimle erişmek için kullanılan bir kümedir. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Karakter Dizileri Karakter Dizilerini

Detaylı

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

Ayrık Fourier Dönüşümü Ayrık Fourier Dönüşümü Tanım: 0 n N 1 aralığında tanımlı N uzunluklu bir dizi x[n] nin AYRIK FOURIER DÖNÜŞÜMÜ (DFT), ayrık zaman Fourier dönüşümü (DTFT) X(e jω ) nın0 ω < 2π aralığında ω k = 2πk/N, k =

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 6 Sıralama(Sort) Algoritmaları 1. Bubble Sort

Detaylı

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BİR BOYUTLU DİZİLER Amaçlar: 1. 1 BOYUTLU DİZİLERİ TANIMLAMAK 2. 1 BOYUTLU DİZİ UYGULAMALARI YAPMAK Örnek 5-1 Aşağıdaki program öğrenci notlarını bularak en iyi notu hesaplar. Harf notu şu şekilde hesaplanır:

Detaylı

BİL1001 Bilgisayar Bilimlerine Giriş 1

BİL1001 Bilgisayar Bilimlerine Giriş 1 DEÜ Bilgisayar Bilimleri Bölümü BİL1001 Bilgisayar Bilimlerine Giriş 1 Öğr. Gör. Dr. Alper VAHAPLAR 2017 Yaz Okulu Tekrarlı Yapılar Algoritmanın belirli bir kısmının, belirli kere ya da belirli durumlar

Detaylı

TABAN ARĠTMETĠĞĠ. ÇÖZÜM (324) 5 = = = = 89 bulunur. Doğru Seçenek C dir.

TABAN ARĠTMETĠĞĠ. ÇÖZÜM (324) 5 = = = = 89 bulunur. Doğru Seçenek C dir. TABAN ARĠTMETĠĞĠ Kullandığımız 10 luk sayma sisteminde sayılar {0,1,2,3,4,5,6,7,8,9} kümesinin elemanları (Rakam) kullanılarak yazılır. En büyük elemanı 9 olan, 10 elemanlı bir kümedir. Onluk sistemde;

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Karakter Dizileri Karakter Dizilerini Okumak ve Yazmak Karakter Dizilerinin Uzunluğunu

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

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

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları BİLGİSAYAR PROGRAMLAMA Algoritma ve Akış Şemaları Algoritma tanımı Algoritma özellikleri Algoritma tasarımı Akış şemaları Dallanma simgeleri Döngü simgeleri Akış şeması tasarımı Akış şeması örnekleri Konu

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Örnekler 2 Örnek1:

Detaylı

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-10 Diziler. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Diziler Bilgisayarlar yardımıyla yapılan işlemlerde, çok sayıda veri

Detaylı

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

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi Bu hafta? İki değişken değerinin yer değiştirilmesi (swapping) selection sort sıralama algoritması bubble sort

Detaylı

BPR152-Algoritma ve Programlama II Uygulama -13

BPR152-Algoritma ve Programlama II Uygulama -13 Örnek problemler ve çözümleri /*Klavyeden girilen n ve m aralığındaki (n ve m dahil) 2, 3 ve 5 sayılarına bölünebilen sayıların toplamlarını ve ortalamalarını hesaplayan bir C# programını yazınız. Not-1:

Detaylı

ARDIŞIK SAYILAR. lab2_pc32 BERRIN_ESMA_OZGE

ARDIŞIK SAYILAR. lab2_pc32 BERRIN_ESMA_OZGE 2011 ARDIŞIK SAYILAR lab2_pc32 BERRIN_ESMA_OZGE 29.11.2011 İçindekiler bu konu 4. Sınıf müfredatında yer almaktadır... 2 ardisik sayılarda dört işlem... Hata! Yer işareti tanımlanmamış. ardisik sayilarda

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Örnekler 2 Örnek1:

Detaylı

Ö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? DİZİLER Tanım kümesi pozitif tam sayılar kümesi olan her fonksiyona dizi denir. Örneğin f : Z + R, f (n )=n 2 ifadesi bir dizi belirtir. Diziler, değer kümelerine göre adlandırı - lırlar. Dizinin değer

Detaylı

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ Azalt ve Fethet Algoritmaları Problemi daha küçük bir örneğine çevir: Küçük örneği çöz Çözümü asıl probleme genişlet 3 tipi vardır:

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

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

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf İçindekiler 1. Giriş... 1 1.2. c++ Programı Yapısı... 2 1.3.Using Direktifi... 5 Bölüm 2. Veri türleri, değişken kavramı, sabit ve değişken bildirimleri ve c++ da kullanımı 7 2.1. Temel veri türleri...

Detaylı

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ BİLGİSAYAR PROGRAMLAMA DERSİ Yrd. Doç. Dr. Fatih TOSUNOĞLU Erzurum Teknik Üniversitesi Mühendislik Fakültesi İnşaat Mühendisliği Bölümü DERS NOTU 5 KONU: Matlab de Diziler ve Matrisler İÇ İÇE FOR DÖNGÜSÜ

Detaylı

BPR152-Algoritma ve Programlama II Uygulama -8

BPR152-Algoritma ve Programlama II Uygulama -8 Bu uygulamalar ile aşağıdaki bilgileriniz pekişecektir. Döngü Yapıları İç-içe döngüler Sonsuz döngüler Döngü içinde kullanılan yardımcı ifadeler o break o continue o goto // iç içe for döngüleri kullanımı

Detaylı

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

Bir algoritma aşağıdaki ğ dki özelliklere sahip komutların sonlu bir kümesidir. BÖLÜM 4 Bir algoritma aşağıdaki ğ dki özelliklere sahip komutların sonlu bir kümesidir. Kesinlik : Algoritma adımları kesin olarak tespit edilmelidir. Bir teklik: Her bir adımın yürütülmesinde sonuçlar

Detaylı

VERİ YAPILARI VE PROGRAMLAMA

VERİ YAPILARI VE PROGRAMLAMA VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip

Detaylı

PROGRAMINIZI ANĠ SONLANDIRMAK ĠSTEDĠĞĠNĠZ YER BĠR DÖNGÜNÜN ĠÇĠ ĠSE NE OLUR?????????

PROGRAMINIZI ANĠ SONLANDIRMAK ĠSTEDĠĞĠNĠZ YER BĠR DÖNGÜNÜN ĠÇĠ ĠSE NE OLUR????????? MATLAB 4.DERS return Komutu Yazdığınız MATLAB programını herhangi bir anda (programın normalde sona erdiği noktanın haricinde - early termination) sona erdirmek için return komutunu kullanabilirsiniz.

Detaylı

Lineer Denklem Sistemleri Kısa Bilgiler ve Alıştırmalar

Lineer Denklem Sistemleri Kısa Bilgiler ve Alıştırmalar Lineer Denklem Sistemleri Kısa Bilgiler ve Alıştırmalar Bir Matrisin Rankı A m n matrisinin determinantı sıfırdan farklı olan alt kare matrislerinin boyutlarının en büyüğüne A matrisinin rankı denir. rank(a)

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 6: Diziler İçerik Diziler Dizi Elemanlarına İlk Atama Diziler ve Fonksiyonlar İki Boyutlu Diziler İki Boyutlu Dizi Tanımı İki Boyutlu Dizi Elemanlarına Erişim

Detaylı

Algoritmalar. DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama Sayı üstelleri Fibonacci sayıları Matriks çarpımı Strassen in algoritması

Algoritmalar. DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama Sayı üstelleri Fibonacci sayıları Matriks çarpımı Strassen in algoritması Algoritmalar DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama Sayı üstelleri Fibonacci sayıları Matriks çarpımı Strassen in algoritması September 14, 2005 Copyright 2001-5 Erik D. Demaine and Charles

Detaylı

Fonksiyon Optimizasyonunda Genetik Algoritmalar

Fonksiyon Optimizasyonunda Genetik Algoritmalar 01-12-06 Ümit Akıncı Fonksiyon Optimizasyonunda Genetik Algoritmalar 1 Fonksiyon Optimizasyonu Fonksiyon optimizasyonu fizikte karşımıza sık çıkan bir problemdir. Örneğin incelenen sistemin kararlı durumu

Detaylı

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar BLM-112 PROGRAMLAMA DİLLERİ II Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/

Detaylı

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO while(), do-while(), for() Döngü (loop) : Bir koşul sağlandığı (true olduğu) sürece bir veya birden çok komutun tekrarlanması işlemidir. Java Döngüler (loops) While() do-while() for ( ) while ( koşul )

Detaylı

MAK 210 SAYISAL ANALİZ

MAK 210 SAYISAL ANALİZ MAK 210 SAYISAL ANALİZ BÖLÜM 6- İSTATİSTİK VE REGRESYON ANALİZİ Doç. Dr. Ali Rıza YILDIZ 1 İSTATİSTİK VE REGRESYON ANALİZİ Bütün noktalardan geçen bir denklem bulmak yerine noktaları temsil eden, yani

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C

Detaylı

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

ÜNİTE MATEMATİK-1 İÇİNDEKİLER HEDEFLER ÜSTEL VE LOGARİTMA FONKSİYONLARI. Prof.Dr.Ahmet KÜÇÜK. Üstel Fonksiyon Logaritma Fonksiyonu HEDEFLER İÇİNDEKİLER ÜSTEL VE LOGARİTMA FONKSİYONLARI Üstel Fonksiyon Logaritma Fonksiyonu MATEMATİK-1 Prof.Dr.Ahmet KÜÇÜK Bu ünite çalışıldıktan sonra, Üstel fonksiyonun tanımı öğrenilecek Üstel fonksiyonun

Detaylı

Değişken içeren ve değişkenlerin belli değerleri için doğru olan cebirsel eşitliklere denklem denir.

Değişken içeren ve değişkenlerin belli değerleri için doğru olan cebirsel eşitliklere denklem denir. 1 DENKLEMLER: Değişken içeren ve değişkenlerin belli değerleri için doğru olan cebirsel eşitliklere denklem denir. Bir denklemde eşitliği sağlayan(doğrulayan) değerlere; verilen denklemin kökleri veya

Detaylı

Olimpiyat Soruları. sonuçları tekrar fonksiyonda yerine koyup çıkan tüm sonuçları toplayan program (iterasyon sayısı girilecek)

Olimpiyat Soruları. sonuçları tekrar fonksiyonda yerine koyup çıkan tüm sonuçları toplayan program (iterasyon sayısı girilecek) HAZIRLAYAN MUSA DEMIRELLI BISHKEK KYRGYZ TURKISH BOYS HIGH SCHOOL education.online.tr.tc compsources0.tripod.com Olimpiyat Soruları 1- Bir diziyi ters çeviren algoritma ve program 2- Bir diziyi sıralayan

Detaylı

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

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar EM205 26/9/2014 Programlamaya giriş Algoritmalar Temel kavramlar Algoritmalar Amaçlar Algoritma kavramını öğrenmek, Algoritmaları ifade edebilmek, Temel matematiksel algoritmaları yazabilmek C programlama

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ AD SOYAD: TESLİM TARİHİ: OKUL NO: TESLİM SÜRESİ: 1 hafta Ödev No: 2 1- A)

Detaylı

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN BLM111 Programlama Dilleri I Hafta 10 Diziler Yrd. Doç. Dr. Caner ÖZCAN Diziler Bilgisayarlar yardımıyla yapılan işlemlerde, çok sayıda veri girilmesi ve girilen verilerin işlenerek belirli bir sistematiğe

Detaylı

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi Veri Yapıları Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi Hash Tabloları ve Fonksiyonları Giriş Hash Tabloları Hash Fonksiyonu Çakışma (Collision) Ayrık Zincirleme Çözümü Linear Probing

Detaylı

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

Ö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. Ö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. PROGRAM Soru1 PRINT Merhaba Dünya! ; 2. Klavyeden girilen negatif bir sayıyı

Detaylı

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ C PROGRAMLAMA DİLİ Diziler Dizi bir kümedir. Aynı tipteki verilere tek bir isimle erişmek için kullanılır. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe saklanır. Bu yüzden dizilere

Detaylı