VERİ YAPILARI DATA STRUCTURE GİRİŞ

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "VERİ YAPILARI DATA STRUCTURE GİRİŞ"

Transkript

1 VERİ YAPILARI DATA STRUCTURE GİRİŞ

2 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ı, kesirli sayı, karakter ve sözcük saklanması için temel veri yapıları vardır. Bir program değişkeni bile basit bir veri yapısı olarak kabul edilebilir.

3 Veri Yapıları Haritası VERİ YAPILARI TEMEL/İLKEL (PRIMITIVE) BASİT (SIMPLE) BİRLEŞİK (COMPOUND) integer float boolean char array string structure union DOĞRUSAL (LINEAR) DOĞRUSAL OLMAYAN (NON-LINEAR) stack queue list tree graph Soyut Veri Yapıları

4 BİLGİSAYAR ÜZERİNDE VERİ İŞLEYİŞİ VERİ İŞLEM BİLGİ GENEL MANTIK

5 Veri Yapılarına Neden İhtiyaç Vardır? O HAFIZA verimi O ZAMAN verimi sağlamak için

6 Peki Yapılabilir? O HAFIZA verimi ve O ZAMAN verimini sağlamak için O 3 strateji önemlidir. 1. Saklama 2. Sıralama 3. Arama O Veri Yapılarının Temelini bu 5 durum oluşturur.

7 Veri Yapılarına Neden İhtiyaç Vardır? O Örnek: O Bir üniversitenin her yıl yeni gelen öğrencilerinin herhangi bir özellik gözetmeksizin okula benzersiz öğrenci numaraları ile kayıt edildiğini varsayalım! Tam olarak kaç yapılacağını bilemiyoruz. O Her yıl öğrenci kaydı alan bu üniversitenin bin öğrencisinin olduğunu varsayalım. O Bu öğrenci arasından öğrenci işleri bir numara aramak istedi? O Acaba ne olur?

8 Veri Yapılarına Neden İhtiyaç Vardır? O Doğru eşleştirme için yapılacak karşılaştırmanın 1 sn. sürdüğünü varsayalım. O Sıralı eşleştirme: O 1 sn. x öğrenci = 41,66 saat O 0,1 sn. x öğrenci = 4,166 saat O 0,01 sn x öğrenci = 0,4166 saat O Başka Çözüm: O Veri Yapıları Mantığı. BU ÖRNEK DÖNEM SONUNA KADAR HATIRLANSIN!!!

9 Algoritmalarda Analiz O Bir problemin çözümü için öne sürülen basamaklı kurallar bütününe algoritma denir. Bir algoritmanın iyi olması için şu özelliklere sahip olması gerekir: O Çalışma Hızı Yüksek Olması O Karmaşıklığının Az Olması O Anlaşılır Olması O Bellek Kullanımı Minimum Olması O Genel Olması

10 Algoritmalarda Analiz O Algoritmaların değerlendirilmesi işlemlerinin sonucunda iyi veya kötü, yeterli veya yetersiz, hızlı veya yavaş, bellek kullanımı iyi veya kötü gibi kıyaslamaların bütününe Algoritma Analizi denir.

11 Algoritmalarda Analiz O Bir algoritmanın analizinde bakılacak önemli iki unsur vardır. Bunlar ; O zaman (time complexity) ve O hafıza (space complexity) kullanımlarıdır. Bu ikisinin karmaşıklıkları hesaplanırsa bir algoritma hakkında yorum yapabiliriz

12 Neden algoritmayı analiz ederiz? O Algoritmanın performansını ölçmek için O Farklı algoritmalarla karşılaştırmak için O Daha iyisi mümkün mü? O Olabileceklerin en iyisi mi? O Sorularına cevap verebilmek için.

13 Neden algoritmayı analiz ederiz? O Yazdığınız algoritmanın veri büyüklüğüne göre ne kadar zaman alacağı, karmaşıklığının nasıl arttığı çok önemlidir. O Yazdığınız algoritma kaynak kullandığı için, bu kaynaklarda para anlamına geldiği için yazdığınız algoritmanın complexity (karmaşıklığı) çok önemlidir..

14 Yürütme Zamanı T(n) O Bir yazılım kodunda, toplam kaç birim işlem yapıldığının göstergesidir. O Buradaki her bir birim işlem, herhangi bir dil için kullanılan ifadenin göstergesidir. O n -> bir yazılımda kullandığımız verinin boyutunu göstermektedir.

15 Algoritmanın Yürütme Zamanı O Yürütme Zamanı T(n) = 1 O cout << "Günay Temür"; Her durumda yaptığı işlem 1 tanedir. Bu sebeple 1

16 Algoritmanın Yürütme Zamanı O n olarak ifade edilen birim işlemlerin toplamı T(n) yürütme zamanı fonksiyonunu verecektir

17 Algoritmanın Yürütme Zamanı O Örnek 2 O Eğer bu işlem bir döngü ise; O for (int i = 0; i < n;i++) O cout << "Günay Temür"; n T(n)= n (n+1) + n T(n)= 3n+2 int i = 0 i < n i++ 1 n+1 n

18 Algoritmanın Yürütme Zamanı 3n+2 3n+2 3n+2 İç içe olamayan döngülerde yürütme zamanları toplanır. T(n)= 9n+6

19 Algoritmanın Yürütme Zamanı 2n+2 3n+2 İç içe olan döngülerde yürütme zamanları çarpılır. T(n)= (3n+2)*(2n+2) T(n)= 6n 2 +10n+4

20 Karmaşıklık (Complexity) O Karmaşıklık ifadesi, özellikle çok sayıda ya da büyüyen veri sayısı karşısında faklı algoritmaların nasıl davrandığını gösteren bir kavramsal ifadedir.

21 Karmaşıklık Durumları O Wast Case (Kötü Durum) O Best Case (İyi Durum) O Avarage Case (Ortalama Durum)

22 Karmaşıklık Dereceleri O Karmaşıklığı ifade etmek için asimptotik ifadeler kullanılmaktadır. O En çok kullanılan asimptotik karmaşıklık ifadesi «büyük O» notasyonudur ve O() ile gösterilir. Big - O () notasyonu olarak adlandırlır.

23 Zaman Karmaşıklığı Dereceleri O O(1) Sabit Zaman :bir ya da sabit bir sayıda komutun çalıştığı algoritmaların karmaşıklığıdır O O(n) Doğrusal zaman : Giriş sayısı ile işlem miktarı oranı bir katsayı ile belirlenebilen algoritmaların karmaşıklığıdır O O(log 2 n) Logaritmik zaman : Büyük problemlerin bölünüp küçültüldüğü algoritmaların karmaşıklığıdır.

24 Zaman Karmaşıklığı Dereceleri O O(n.log 2 n) : Genellikle problemin küçük parçalara bölünüp ayrı ayrı çözümlerinin birleştirildiği türde algoritmaların karmaşıklığıdır. O O(n 2 ) Karesel zaman : Problemin çözümünde iç içe döngüler kullanılıyor ise bu algoritmaların karmaşıklığı karesel zaman notasyonu ile gösterilir.

25 zaman karmaşıklığını hesaplarken 1. Dizinin boyutuyla ilişkisi olmayan komutlar O(1) zamanı alınır. 2. Döngüler O(n) zamanı alınır. (n dizi boyutu) 3. İç içe döngüler zaman karmaşıklıklarının çarpılması şeklinde hesaplanır. 4. Birinci döngü n ikinci döngü n kere dönüyor ise zaman karmaşıklığı O(n 2 ) zamanı alınır. 5. Ard arda döngüler zaman karmaşıklıklarının toplanması şeklinde hesaplanır.

26 zaman karmaşıklığını hesaplarken 6. If-then-else gibi şartlı yapılarda iki koşuldan zaman karmaşıklığı yüksek olan alınır. 7. Her bir icra, problemi, dizi boyutunun yarısı şeklinde ikiye bölüyorsa, zaman karmaşıklığı O(log 2 n) zamanı alınır. 8. Katsayısı daha küçük olan zaman karmaşıklıkları ihmal edilir. 9. Sabit çarpanlar karmaşıklığı etkilemez. Yani;

27 zaman karmaşıklığı O Daha önce hesapladığımız fonksiyonun O T(n) yürütme zamanı; O T(n) = 3n + 2 O Karmaşıklık notasyonu; O O(n) olur.

28 zaman karmaşıklığı O T(n) yürütme zamanı; O T(n)= 9n+6 O Karmaşıklık notasyonu; O O(n) olur.

29 zaman karmaşıklığı O T(n) yürütme zamanı; O T(n)= 6n 2 +10n+4 O Karmaşıklık notasyonu; O O(n 2 ) olur.

30 Karmaşıklık Tablosu ve Anlamları

31 Karmaşıklık Grafiği

32

33 Program Bellek Gereksinimi Kod için; Programın tasarımına bağlıdır. Veri için; değişken, sabit sayısı ve türüne bağlıdır. Yığın için; bilgilerin geçici olarak saklandığı bellek alanına bağlıdıdır.

34 Örnek: Bellek Miktarı Hesabı O float aritmatikort(int N) O { O int A[20] = { 7, 65, 3, 23, 64, 58, 69, 35, 34, 79, 62, 12, 38, 62, 52, 46, 47, 95, 24, 27 }; O int k, toplam = 0; O float ort; O for (k = 0; k<20; k++) O toplam += A[k]; O ort = (float)toplam / 20.0; O }

35 Örnek: Bellek Miktarı Hesabı O Öncelikle bellekte yer işgal edecek değişken bilgileri edinilir. O A, k, toplam, ort ve gelen N O İnt ve Float değişkenlerinin bellekte 4 byte yer tuttuğunu bildiğimizden O 4+4*20+4*1+4*1+4*1= 96 Byte bellek ihtiyacımız vardır.

36 VERİ YAPILARI HAFTA_2 ÖĞR.GÖR.GÜNAY TEMÜR DÜZCE ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ

37 İÇİNDEKİLER Bu bölümde, Geçen hafta yaptığımız bellek miktarı ve notasyon konularına örnek; IEEE Kayan noktalı yazı formatı Sıralama(Sort) Algoritmaları Bubble Sort Selection Sort Insert Sort Quick Sort Arama(Search) Algoritmaları Linear Search Binary Search konularına değinilecektir. BMT_207 VERİ YAPILARI

38 Bellek Miktarı Hesabı Verilen kod parçası için bellekte ayrılan miktarı hesaplayınız.

39 Bellek Miktarı Hesabı int türünde 5 adet değişken 5*4 = 20 byte float türünde 1 adet değişken 1-*4= 4 byte Toplam miktar = = 24 byte

40 Bellek Miktarı Hesabı Verilen kod parçası için bellekte ayrılan miktarı hesaplayınız.

41 Bellek Miktarı Hesabı dizi[6][7] = 42 adet veri, türü int 42*4=168 i,j,toplam,sonuc = 4 adet veri, türü int 4*4=16 toplam =184

42 Bellek Miktarı Hesabı Verilen kod parçası için bellekte ayrılan miktarı hesaplayınız.

43 Bellek Miktarı Hesabı pointer=4 byte (32 bitlik işletim sistemi) char 6*1 = 6 byte id1 = 4 byte toplam = 14 byte

44 Zaman Notasyonu Verilen kod parçası için büyüme oranı notasyonu nedir?

45 Zaman Notasyonu O(n) O(n) O(n) O(n) 3n O(n 2 ) O(n 3 ) O(n)

46 IEEE kayan noktalı sayı formatı Parametre 32-bitlik kayan noktalı 64-bitlik kayan noktalı İşaret bit i 0, artı; 1, eksi sayı 0, artı; 1, eksi sayı Çarpan uzunluğu (bit) Üs uzunluğu (bit) 8 11 Üs tabanı (bit) 2 tabanı 2 tabanı Üssün en büyük değeri Üssün en küçük değeri

47 IEEE kayan noktalı sayı formatı bit i (işaret) üs k (çarpan) 32 0/1 8 bit 23 bit 64 0/1 11 bit 52 bit i (işaret) üs k (çarpan) sign exponent mantissa Sayı= (-1) i *(1+k)*2 n=üs-bias

48 Örnek Sayı 3,14 IEEE Gösterim

49 Sıralama Algoritmaları (devam ) Sıralama, sayısal ortamdaki bilgilerin veya verilerin belirli bir anahtar sözcüğe göre belirli bir anlamda sıralı erişilmesini sağlayan bir düzenlemedir. Örneğin: Telefon rehberindeki bir kişinin telefon numarasının bulunması bir arama (search) işlemidir. Genel olarak eleman toplulukları o Daha etkin erişim amacıyla (aramak ve bilgi getirmek) sıralanır ve/veya sıralı şekilde saklı tutulurlar. BMT_207 VERİ YAPILARI

50 Sıralama Algoritmaları (devam ) Eleman (kayıt, yapı...) toplulukları genelde (her zaman değil) bir anahtara göre sıralı tutulurlar. Bu anahtar genelde elemanların bir alt alanı yani üyesidir. Örneğin, Öğrenci o o o Soyada göre sıralı olursa soyadı anahtardır, Numaraya göre sıralı olursa numara anahtardır, Nota göre sıralı olursa not alanı anahtardır. Elemanlar içindeki her elemanın anahtar değeri, kendinden önceki elemanın anahtar değerinden büyükse artan sırada (ascent AZ), küçükse azalan (descent ZA) sırada sıralıdır. BMT_207 VERİ YAPILARI

51 Sıralama Algoritmaları (devam ) Sıralama algoritmalarının hesaplama verimliliği açısından; VY olarak array, stack, queue veya tree kullanılabilir. Literatürde çok farklı sıralama algoritmaları mevcuttur: Bubble Sort Selection Sort Insertion Sort Quick Sort Heap Sort Merge Sort BMT_207 VERİ YAPILARI

52 1. Bubble (Kabarcık) Sort Verimliliği düşük ancak mantığı basit bir sıralama algoritmasıdır. n boyutlu bir a[] dizisi için artan sıralamayı düşünelim. Bubble Sort (BS) en fazla (n-1) taramada sıralamayı tamamlar. BMT_207 VERİ YAPILARI

53 1. Bubble (Kabarcık) Sort (devam ) İlk taramada a 0 ve a 1 kıyaslanır eğer a 0 > a 1 ise iki değer takas (swap) edilir. Değilse bu defa a 1 ve a 2 kıyaslanarak gerekirse yer değişikliği yapılır. Bu ilk iki adım ilk tarama sonuna kadar kadar sürer. Her tarama sonunda dizideki en büyük eleman sona aktarılır. Sadece 1. taramada tüm dizi elemanları dolaşılmaktadır. Her taramada (dizinin eleman sayısı) (tarama sayısı) kadar eleman ilk iki adım tekrarlanır. BMT_207 VERİ YAPILARI

54 1. Bubble (Kabarcık) Sort (devam ) [5, 1, 12, -5, 16] dizisinde Bubble Sort işletimi gösterilmiştir. BMT_207 VERİ YAPILARI

55 1. Bubble (Kabarcık) Sort (devam ) Quadratic işlem karmaşıklığı sahip olan Bubble Sort algoritması, büyük n değerlerinde en yavaş performansa sahip olan sıralama algoritmasıdır. Elemanların ilk dizilimi sıralama performansını önemli ölçüde etkiler. İç döngü: (n - 1) + (n - 2) = (n )/2 Dış döngü: n Toplam İterasyon: n * (n / 2) = n 2 / 2 Big O Karmaşıklığı: O(n 2 ) BMT_207 VERİ YAPILARI

56 2. Selection Sort Bubble Sort algoritması gibi verimliliği düşük ancak mantığı yine basit bir sıralama algoritmasıdır. Takas sayısı çok daha az olduğu için Bubble Sort algoritmasının iyileştirilmiş hali gibi düşünülebilir. BMT_207 VERİ YAPILARI

57 2. Selection Sort (devam ) Algoritmanın temel çalışma mantığı aşağıdaki gibidir: Dizinin ilk elemanından başla. Dizideki en küçük elemanı bul, A[0] indisindeki elemanla karşılıklı takas yap (swap). İkinci en küçük elemanı A[1] ile A[n] arasında ara, İkinci en küçük elemanı bul, Bu eleman ile A[1] i takas yap. Takas işlemine dizi bitene kadar devam et. Her adımda Sol tarafta sıralı bir alt dizi, Sağ tarafta ise sırasız bir alt dizi elde edilir. BMT_207 VERİ YAPILARI

58 2. Selection Sort (devam ) Aşağıda [7, 4, 5, 9, 8, 2, 1] dizisinde Selection Sort algoritmasının işletilme adımları gösterilmiştir. BMT_207 VERİ YAPILARI

59 2. Selection Sort Karmaşıklığı Algoritma ilk geçiş için (n - 1) karşılaştırma, ikinci geçiş için ise (n - 2) karşılaştırma yapar. A(n) elemanlı dizi için toplam karşılaştırma adedi ve karmaşıklık A(n) = (n 1) + (n 2) veya (n * n ) / 2 = 1 / 2 (n 2 ) veya O(n 2 ) olur. BMT_207 VERİ YAPILARI

60 3. Insertion Sort Örneğin, masada bir deste oyun kâğıdı, sırasız ve sırtları yukarıya doğru duruyor olsun. Desteden en üstteki kartı alalım. Onu masaya yüzü görünür biçimde koyalım. Tek kart olduğu için sıralı bir kümedir. Sırasız destenin üstünden bir kart daha çekelim. Masadaki ilk çektiğimiz kart ile karşılaştıralım. Gerekirse yerlerini değiştirerek, çektiğimiz iki kartı küçükten büyüğe doğru sıralayalım. Sırasız destenin üstünden bir kart daha çekelim. Masaya sıralı dizilen iki kart ile karşılaştıralım. Gerekirse yerlerini değiştirerek çekilen üç kartı küçükten büyüğe doğru sıralayalım. Bu işleme sırasız deste bitene kadar devam edelim. Sonunda, oyun kâğıtlarını sıralamış oluruz. BMT_207 VERİ YAPILARI

61 3. Insertion Sort (devam ) BMT_207 VERİ YAPILARI

62 3. Insertion Sort Karmaşıklığı A(n) elemanlı dizi için toplam karşılaştırma adedi ve karmaşıklık A(n) = (n 1) + (n 2) veya (n * ( n + 1 ) / 2) = 1 / 2 (n 2 +n) veya O(n 2 ) olur. BMT_207 VERİ YAPILARI

63 4. Quick Sort Quick Sort (QS) algoritması böl-fethet mantığına uygun olarak sıralama yapan recursive (özyinelemeli) bir algoritmadır. Ticari sıralama algoritmalarında QS sıklıkla kullanılır. QS algoritması temel olarak diziyi bir pivot (mihenk) etrafında iki alt-diziye bölerek: o o Pivota küçük eşit elemanları pivotun sol tarafına Pivottan büyük elemanları pivotun sağ tarafına yerleştirir. BMT_207 VERİ YAPILARI

64 4. Quick Sort (devam ) Aynı işlem, her alt dizi için bir pivot seçerek tekrarlar ve bu işlem tek eleman kalana kadar devam eder. QS için farklı pivot seçim yöntemleri bulunmaktadır. Pivot olarak dizinin o İlk elemanı, o Son elemanı, o Orta elemanı, o Rastgele bir dizi elemanı, seçilerek sıralama işlemi gerçekleştirilebilmektedir. BMT_207 VERİ YAPILARI

65 4. Quick Sort Örnek (devam ) A[i] = {2, 17, -4, 42, 9, 26, 11, 3, 5, 28} dizisi verilsin. Dizinin terimleri arasından birisini (pivot) olarak seçelim. Yapacağımız işlemde eş uygulamayı sağlamak için pivot şöyle seçelim: Ayrıştırılacak (alt) dizinin ilk teriminin indisi ile son teriminin indislerini toplayıp 2 ye bölelim. Bölümün tamsayı parçasını pivot indisi olarak seçelim. (0 + 9) / 2 = 4 (pivot, tam kısım) BMT_207 VERİ YAPILARI

66 4. Quick Sort Örnek (devam ) Şimdi (A[4]=9) pivot un solunda o 9 dan büyük olan terimler varsa onları sağ tarafa taşıyacağız. o Benzer şekilde, 9 un sağında 9 dan küçük terimler varsa, onları sol tarafa taşıyacağız. o Özel olarak pivot a eşit olan başka terimler varsa, onları sağa ya da sola taşıyabiliriz. BMT_207 VERİ YAPILARI

67 4. Quick Sort Örnek (devam ) Pratik yöntem: Sol elimizle sol kısmı sağ elimizle de sağ kısmı tarayacağız. Solda pivot tan büyük ilk eleman: A[1] = 17 solda tut Sağda pivot tan küçük ilk eleman: A[8] = 5 sağda tut İki elemanı yer değiştir. BMT_207 VERİ YAPILARI

68 4. Quick Sort Örnek (devam ) Aynı işlemi solda 9 dan büyük, sağda 9 dan küçük olan sayılar çifti için tekrarlayacağız. Görüldüğü gibi, 42 ve 3 sayıları takas edilecektir. BMT_207 VERİ YAPILARI

69 4. Quick Sort Örnek (devam ) Bu eylem sonunda, diziyi {2, 5, -4, 3}, {9} ve {26, 11, 42, 17, 28} olmak üzere üç altdiziye ayırmış oluruz. Soldaki alt dizideki her terim, sağdaki alt dizideki her teriminden küçüktür. Şimdi soldaki ve sağdaki altdizileri yeni dizilermiş gibi düşünüp, aynı yöntemle onları ayrıştırabiliriz. Sonra onların da sol ve sağ alt dizilerini ayrıştırabiliriz. Bu süreç, alt diziler tek terimli birer diziye indirgenene kadar devam edecektir. BMT_207 VERİ YAPILARI

70 4. Quick Sort Örnek (devam ) Sol Sağ Pivot a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] Açıklama Ayrışma Ayrışma Ayrışma Ayrışma Ayrışma Ayrışma sıralandı BMT_207 VERİ YAPILARI

71 4. Quick Sort Karmaşıklığı Eğer şanslı isek, seçilen her eleman ortanca değere yakınsa (Average Case) o O(nlogn) karmaşıklığa sahipken BMT_207 VERİ YAPILARI

72 4. Quick Sort Karmaşıklığı En kötü durumda ise parçalama dengesiz olacak ve n iterasyonla sonuçlanacaktır (Worst Case) o O(n 2 ) BMT_207 VERİ YAPILARI

73 5. Merge Sort Merge Sort (Birleştirme Sıralaması), diziyi ardışık olarak en küçük alt dizilerine kadar yarılayan sonra da onları sıraya koyarak bireştiren özyineli bir algoritmadır. Algoritmanın çalışması kavramsal olarak şöyledir: Sıralı olmayan diziyi ortadan eşit olarak iki alt diziye ayırır. Bu ayırma işlemi, alt diziler en çok iki elemanlı olana kadar devam eder. Alt dizileri kendi içinde sıralar. Sıralı iki alt diziyi tek bir sıralı dizi olacak şekilde birleştirir. Bu algoritma O(nlogn) grubuna ait etkin bir sıralama yöntemidir. BMT_207 VERİ YAPILARI

74 5. Merge Sort BMT_207 VERİ YAPILARI

75 Sıralama Algoritmaları Karmaşıklık Kıyaslama BMT_207 VERİ YAPILARI

76 Arama Algoritmaları Arama, bir bilgi kümesi içerisinde belirli bir anahtar sözcüğe dayanılarak onunla ilgili diğer bilgilere erişme/elde etme işlemidir. Bilgisayar ve benzeri sayısal ortamlarda tutulan bilgilerin anlamlı olarak kullanılması ve onlar üzerinde işlemler yapılması için her şeyden önce bilginin olup olmadığı ve varsa belleğin neresinde olduğunun belirlenmesi gerekir. Bu işlem, bir arama algoritması ile gerçekleştirilir. BMT_207 VERİ YAPILARI

77 Arama Algoritmaları (devam ) Arama işleminin yapılış şekli bilgiye ait verilerin düzenlenme şekline (sıralı / sırasız olması) ve bellekte tutulmasına göre farklılıklar gösterir. İki tür arama işlemi gerçekleştirilebilmektedir: 1. Dahili (internal) arama 2. Harici (external) arama BMT_207 VERİ YAPILARI

78 Arama Algoritmaları (devam ) 1. Dahili (internal) arama: Arama işlemi bellek üzerinde tutulan veriler üzerinde yapılır. Veriye erişim hızlı olduğu için verilerin yer değiştirmesi, araya ekleme, aradan çıkarma gibi işlemler daha hızlı gerçekleşir. 2. Harici (external) arama: Arama işlemi disk, yedekleme birimi gibi belleğe göre daha yavaş olan saklama birimleri üzerinde yapılır. Dolayısı ile verilerin yer değiştirmesi, bir veriden diğerine atlanması, arkada kalanların öne doğru kaydırılarak bir verinin silinmesi veya arkaya doğru kaydırılarak yeni bir veriye yer açılması gibi işlemler zaman alır. BMT_207 VERİ YAPILARI

79 Arama Algoritmaları (devam ) Bu bölümde üzerinde duracağımız arama algoritmaları aşağıdaki gibidir: 1. Linear Search (Doğrusal Arama) 2. Binary Search (İkili Arama) BMT_207 VERİ YAPILARI

80 1. Linear Search (Doğrusal Arama) Herhangi bir liste veya dizi içerisindeki ilk elemandan başlanarak son elemana kadar, dizi terimleri ile aranan sözcük karşılaştırılır, sözcük bulunduğunda geriye dizi teriminin indisi, bulunamadığında ise -1 (false) değeri döndürülür. Not: Dizi sırasız ve az elemana sahipse tercih edilen bir algoritmadır. Linear Search Big O Karmaşıklığı: O(n) BMT_207 VERİ YAPILARI

81 2. Binary Search (İkili Arama) İkili arama sıralı veriler üzerinde çalışan bir algoritmadır. Verilerin önceden belirli bir anahtar sözcüğe göre sıralanması gerekmektedir. Örneğin, veriler bir dizi üzerinde ardışık olarak sıralı şekilde tutuluyorsa ikili arama yapılabilir. Sıralı veriler her adımda iki parçaya bölünerek arama işlemi gerçekleştirilir. İkili arama algoritması, tasarım olarak parçala fethet (divide and conquere) türündedir. BMT_207 VERİ YAPILARI

82 2. Binary Search (İkili Arama) (devam ) İkili arama algoritmasının sözde kodu aşağıdaki gibidir: o Aranacak uzayın tam orta noktasına bak o Eğer aranan değer bulunduysa bitir o Eğer bakılan değer aranan değerden büyükse Arama işlemini problem uzayının küçük elamanlarında devam ettir. o Eğer bakılan değer aranan değerden küçükse Arama işlemini problem uzayının büyük elemanlarında devam ettir. o Şayet bakılan aralık 1 veya daha küçükse aranan değer bulunamadı olarak bitir. BMT_207 VERİ YAPILARI

83 2. Binary Search (İkili Arama) (devam ) BMT_207 VERİ YAPILARI

84 2. Binary Search (İkili Arama) (devam ) Binary Search Big O Karmaşıklığı: O(logn) BMT_207 VERİ YAPILARI

85 Binary Search vs. Linear Search 17 elemanlı bir dizide 37 sayısını arıyoruz BMT_207 VERİ YAPILARI

86 Binary Search vs. Linear Search BMT_207 VERİ YAPILARI

87 İYİ ÇALIŞMALAR BMT_207 VERİ YAPILARI

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ı

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ı

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ı

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ı

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

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği Yrd. Doç. Dr. A. Burak İER Bilgisayar Mühendisliği Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar Temel Kavramlar Algoritma: Bir problemin çözümüne

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ı

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ı

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

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

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ı

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ı

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

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. DERS İÇERİĞİ VE KAYNAKLAR Veri Yapıları (VY) dersinde görülmesi muhtemel

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 BAŞLAMADAN ÖNCE Bu dersi alan öğrencilerin aşağıdaki konuları bildiği

Detaylı

Insertion Sort. (Sokuşturma Sıralaması)

Insertion Sort. (Sokuşturma Sıralaması) Insertion Sort (Sokuşturma Sıralaması) Bu sıralama Bubble Sort algoritmasının iyileştirilmiş biçimidir. Zaman karmaşası (time complexity) O(n 2 ) dir. Bu algoritmayı açıklayan basit bir örnek verebiliriz.

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ı

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ı

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ı

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

Algoritmalar. Doğrusal Zamanda Sıralama. Bahar 2017 Doç. Dr. Suat Özdemir 1 Algoritmalar Doğrusal Zamanda Sıralama Bahar 2017 Doç. Dr. Suat Özdemir 1 Sıralama Özet - Insertion sort Kodlaması kolay Küçük veri setleri için hızlı (~50 element) Neredeyse sıralı veri setleri için en

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ı

Quick Sort Algoritması (Hızlı Sıralama Algoritması)

Quick Sort Algoritması (Hızlı Sıralama Algoritması) Quick Sort Algoritması (Hızlı Sıralama Algoritması) Quick Sort (Hızlı Sıralama) algoritması C.A.R.Hoare tarafından bulunan etkin bir sıralama yöntemidir. Siyaset biliminde çok kullanılan böl ve yönet stratejisine

Detaylı

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama Bölüm 39 Binary Search (Yarılama) 39.1 Dizide Bir Öğe Arama İkil aramayı (yarılama yöntemi) sıralı veri kümelerinde sık sık kullanırız. Örneğin, sözlükte bir sözcüğü ararken, sözlüğün bütün sayfalarını

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ı

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ı

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ı

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ı

Bilgisayar programlamanın üç temel mantık yapısından biridir. Diğer ikisi ise Seçilim(Selection) ve Döngü(Loop, Iteration)dür.

Bilgisayar programlamanın üç temel mantık yapısından biridir. Diğer ikisi ise Seçilim(Selection) ve Döngü(Loop, Iteration)dür. SEQUENCE ALGORİTMASI Bilgisayar programlamanın üç temel mantık yapısından biridir. Diğer ikisi ise Seçilim(Selection) ve Döngü(Loop, Iteration)dür. Bir dizi yapısı içinde, bir eylem ya da bir olay, geçmiş

Detaylı

Merge Sort Bireşen Sıralama

Merge Sort Bireşen Sıralama Merge Sort Bireşen Sıralama Merge sort (bireşen sıralama), diziyi ardışık olarak en küçük alt dizilerine kadar yarılayan sonra da onları sıraya koyarak bireştiren özyineli bir algoritmadır. Yarılama işlemi

Detaylı

{\} /\ Suhap SAHIN Onur GÖK

{\} /\ Suhap SAHIN Onur GÖK Veri Yapıları ve Algoritmalar 0 {\} /\ Suhap SAHIN Onur GÖK Kaynaklar http://www.papatyabilim.com.tr/veriyapilari_algoritmalar.htm Kaynaklar http://www.tutorialspoint.com/data_structures_algorithms/index.htm

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ı

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

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ı

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ı

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ı

BMT207 VERİ YAPILARI DATA STRUCTURE

BMT207 VERİ YAPILARI DATA STRUCTURE BMT207 VERİ YAPILARI DATA STRUCTURE Teknoloji Fakültesi Bilgisayar Mühendisliği GÜNAY TEMÜR Konu Dağılım Hafta 1. Hafta 2.Hafta 3.Hafta 4.Hafta 5.Hafta Konu Ders İçerik Tanıtım, Ödev-Proje-Sınavlar Hakkında

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ı

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*/

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*/ Program çalışma hızı; Belirlenen bir problemin çözümü için tasarlanan program kodunun görevini yerine getirmesi için gerekli zaman bilgisini veren bir ifadededir. Bellek Gereksinimi; Programın yürütülmesi

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 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 - 9 Hatırlatmalar Tam İkili Ağaç Eksiksiz İkili

Detaylı

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI Algoritma Nedir? Algoritma Bir problemin çözümü için geliştirilmiş özel metot Girdileri çıktılara dönüştüren sıralı hesaplama adımları Tanımlanmış

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ı

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ı

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ı

I Java Veri Yapıları 1

I Java Veri Yapıları 1 İçindekiler Önsöz xix I Java Veri Yapıları 1 1 Giriş 3 1.1 Veri Nedir?............................... 3 1.2 Algoritma Nedir?............................ 4 1.3 Veri Yapıları..............................

Detaylı

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler: Veri Yapıları Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz İçindekiler: Giriş Temel Veri Yapıları Tanımlamalı Veri Yapıları Veri Modeli ve Türleri

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

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ı

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

Veri Yapıları. Yrd. Doç. Dr. Şadi Evren ŞEKER Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar Mühendisliği Bölümü, Bilgisayar Mühendisliğine Giriş Dersi için genel amaçlı veri yapıları hakkında

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ı

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

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü ra Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :13.04.2017 60 dak. Dikkat!!! Soru kitapçığında ve cevap

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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

SIRALAMA SORTING. Yrd. Doç. Dr. Aybars UĞUR

SIRALAMA SORTING. Yrd. Doç. Dr. Aybars UĞUR SIRALAMA SORTING Yrd. Doç. Dr. Aybars UĞUR Giriş Sıralama ve arama tekniklerinden pek çok programda yararlanılmaktadır. Günlük yaşamımızda elemanların sıralı tutulduğu listeler yaygın olarak kullanılmaktadır.

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ı

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ı

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ı

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ı

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 Toplam HACETTEPE ÜNİVERSİTESİ 2013-2014 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 1. Ara Sınav 18.03.2014 Sınav Süresi: 50 dakika

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ı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Bellek ve Adresleme İşaretçi Kavramı

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 - 3 Motivasyon: Neden Listeye İhtiyaç Var? Bağlı

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ı

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

Java, Python ve Ruby Dillerinin Performans Karşılaştırması Java, Python ve Ruby Dillerinin Performans Karşılaştırması Çanakkale Onsekiz Mart Üniversitesi Mustafa ŞAHİN Akademik Bilişim 2007 1 Dillerin seçim nedeni Java, Pyton ve Ruby Programlama dillerinin popülerliği

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 Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN BAĞLI LİSTELER Bağlı listeler konusuna çalışmanın bazı faydaları var. Bağlı listeler gerçek programlarda kullanılabilecek bir veri yapısıdır. Bağlı listelerin güçlü ve zayıf yönlerini

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, Giriş Hash Tabloları Hash Fonksiyonu Çakışma (Collision)

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) Özyineleme tanımlamaları Özyineleme çağırma Tail özyineleme Nontail özyineleme Dolaylı (Indirect) özyineleme İçiçe (Nested) özyineleme Yrd.Doç.Dr. M. Ali Akcayol Kendi kendisini doğrudan veya dolaylı olarak

Detaylı

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 S6 S7 Toplam HACETTEPE ÜNİVERSİTESİ 2012-2013 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 1. Ara Sınav 25.04.2013 Sınav Süresi:

Detaylı

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Ders 4: Diziler (Arrays( Arrays) barisgokce.com Ders 4: Diziler (Arrays( Arrays) Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Diziler Aynı tipteki bir veri gurubunun bir değişken içinde saklanmasıdır. Veriler Hafızada

Detaylı

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Öncelikli kuyruk konusunu hatırlayın. Kuyruğa sonradan eklenmesine rağmen öncelik

Detaylı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

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ı

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 - 8 Problem Tanımı Arama Ağaçları İkili Arama

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ı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonu Referans ile Çağırma (Call by Reference) Bir fonksiyona gönderilen parametrenin normalde değeri değişmez. Fonksiyon içinde yapılan işlemlerin hiçbiri argüman değişkeni

Detaylı

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

5.Hafta Alt Sınırları Sıralama Doğrusal-Zaman (linear time) Sıralaması (devam) 1 5.Hafta Alt Sınırları Sıralama Doğrusal-Zaman (linear time) Sıralaması (devam) Alt Sınırları Sıralama Karar ağaçları Doğrusal-Zaman Sıralaması Sayma sıralaması Taban sıralaması Kova sıralaması Sayma

Detaylı

Arama metodlarında temel işlem anahtarları karşılaştırmaktır.

Arama metodlarında temel işlem anahtarları karşılaştırmaktır. (Kırpma) Hash Fonksiyonları Selecting Digits Folding (shift folding, boundary folding) Division MidSquare Extraction Radix Transformation Çakışma (Collision) ve çözümler Linear Probing Double Quadratic

Detaylı

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

VERİ YAPILARI. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ HASH TABLOLARI. VERİ YAPILARI HASH TABLOLARI Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ muratgok@gmail.com Hash tabloları Hash tablo veri yapısı ile veri arama, ekleme ve silme işlemleri

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ı

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

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ VERİ YAPILARI LİSTELER Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ Bağlı Listeler Aynı kümeye ait veri parçalarının birbirlerine bellek üzerinde, sanal olarak bağlanmasıyla

Detaylı

Ara Sınav 1. Algoritmalara Giriş 14 Ekim 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Kitapçık 14

Ara Sınav 1. Algoritmalara Giriş 14 Ekim 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Kitapçık 14 Algoritmalara Giriş 14 Ekim 2005 Massachusetts Institute of Technology 6.046J/18.410J Profesörler Erik D. Demaine ve Charles E. Leiserson Kitapçık 14 Ara Sınav 1 Dağıtılan sınav kitapçığını, size söylenene

Detaylı

Örneğin iki sayının toplamının hesaplayacak bir fonksiyon şöyle tanımlanabilir:

Örneğin iki sayının toplamının hesaplayacak bir fonksiyon şöyle tanımlanabilir: İçindekiler 1. Fonksiyonlar... 2 1.1. Parametreli Fonksiyonlar... 3 1.2. Parametresiz Fonksiyonlar... 4 1.3. Geri Dönüş Tipi Belirli Fonksiyonlar... 5 1.4. Geri Dönüş Tipi Belirsiz Fonksiyonlar (Void)...

Detaylı

BIP116-H14-1 BTP104-H014-1

BIP116-H14-1 BTP104-H014-1 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ı

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

Algoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları Algoritma Analizi ve Büyük O Notasyonu Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları Algoritmaların Özellikleri Algoritmalar Input Girdi, bir kümedir, Output ÇıkF, bir kümedir (çözümdür) Definiteness

Detaylı

3. Bölüm Algoritmalar

3. Bölüm Algoritmalar 3. Bölüm Algoritmalar Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 3.1. Veri ve Bilgi Şekil 3.1 de bilgisayar sistemin temelini oluşturan veri işlem modeli görülmektedir. Hesaplama, saklama gibi

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 - 5 Kuyruk VY ve ADT Basit Kuyruk (Simple Queue)

Detaylı

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Dersin Planı B+ Tree Temel bir veritabanı çalışma kodu Hash (Karma) Heap Ağaçlar

Detaylı

6.Hafta Kıyım Fonksiyonu (Hashing), BST. Doğrudan erişim tabloları Çarpışmaları ilmekleme ile çözmek Kıyım fonksiyonu seçimi Açık adresleme

6.Hafta Kıyım Fonksiyonu (Hashing), BST. Doğrudan erişim tabloları Çarpışmaları ilmekleme ile çözmek Kıyım fonksiyonu seçimi Açık adresleme 1 6.Hafta Kıyım Fonksiyonu (Hashing), BST Doğrudan erişim tabloları Çarpışmaları ilmekleme ile çözmek Kıyım fonksiyonu seçimi Açık adresleme Sembol-tablosu problemi 2 Doğrudan erişim tablosu 3 4 Çözüm

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 İşaretçiler ve Diziler Fonksiyon

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ı

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

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin

Detaylı

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

İnternet Programcılığı Öğr. Gör. Serkan AKSU  PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler PHP de Dizi-Değişkenler, Nesneler Dizilerle ilgili örneklere geçmeden önce aşağıdaki tabloyu inceleyelim. Tabloda dizi kavramının mantığı açıklanmaktadır. Tablonun tamamını bir dizi olarak düşünün ve bu

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ı