HASH(KARMA) TABLOSU VERİ YAPISI
|
|
- Meryem Akyüz
- 7 yıl önce
- İzleme sayısı:
Transkript
1 HASH(KARMA) TABLOSU VERİ YAPISI Niçin Hash Tablosu? Arama algoritmaları, güncel ve sıkça başvurulan algoritmalardan birisidir. Bilgisayar ortamı veya diğer sayısal ortamlara kaydedilmiş bir bilginin daha sonra geri alınması pek çok uygulamada gerekli olmaktadır. Örneğin veri tabanı uygulamalarında arama işlemleri, web üzerinde arama motorları, ansiklopedi yada e-sözlük tarzı web siteleri vb hizmetler arama algoritmalarını yoğun olarak kullanan bazı uygulamalardır. Arama işlemi için bir anahtar değer kullanılır. İşlem sonucunda o anahtara ilişkin bilgiler elde edilir ya da aranılan bulunamaz. Arama algoritmalarının etkinliği kullanılan veri yapısı ile yakından ilişkilidir. Örneğin; N elemanlı bir Dizi ve Bağlı Liste Veri yapısı için arama işleminin çalışma süresi(maliyeti) O(N), İkili Arama Ağaçlarında ise O(logN) ile ifade edilmektedir. Hash(Karma) Tablosu; özellikle arama işleminin etkinliği açısından diğer veri yapılarına göre avantajlı olan bir veri yapısı olup, Arama, ekleme, silme gibi temel işlemlerin O(1) zamanda gerçekleştirilmesini sağlar. Hash Tablosu özellikle arama algoritmasının etkinliği açısından diğer veri yapılarına üstünlük sağlar. Arama işleminin yanı sıra ekleme, silme gibi temel işlemlerin de O(1) sürede gerçekleşmesini sağlayan önemli bir veri yapısıdır. İşlem Veri Yapısı Dizi Bağlı Liste İkili Arama Hash Tablosu Ağacı Ekleme O(N) O(1) O(logN) O(1) Silme O(N) O(1) O(logN) O(1) TANIM-HASH(KARMA) TABLOSU: Bir dizi elemandan oluşan basit bir veri yapısıdır. Elemanlar; sayısal(tc kimlik no.su, telefon no.su gibi), string(ad, Soyad gibi) veya özel tanımlı topluluk yapısı tipinden(ogrenci, Personel gibi) olabilir. N adet elemandan oluşan tablonun büyüklüğü N dir ve elemanlar 0 ile N-1 arasında normal bir dizideki gibi adreslenirler. Hash(Karma) Tablosunun özelliği; elemanlar ile adreslerini birbirine bağlayan birebir bir fonksiyon kullanmasıdır. Bu fonksiyona hash(karma) fonksiyonu denilir. Bu fonksiyon sayesinde elemanların bulundukları konumlar(indeksler), fonksiyonun hesaplanma zamanı kadar zamanda (genellikle sabit zamanda) belirlenebilir. Veri Toplulukları/Kayıtlar 1111 Ali Can 2220 Veli Can 3335 Ayşe Can 4444 Oya Can Key Key Hash Fonksiyonu Hash Tablosu 2220 Veli Can 1111 Ali Can 4444 Oya Can 3335 Ayşe Can
2 Yukarıdaki şekilde de görüldüğü gibi Hash Tablosu; verinin(yani elemanın) hash fonksiyonuyla hesaplanan konumda(indekste) tutulduğu veri yapısıdır. Bu veri yapısı veriye bir anahtar (key) yardımı ile erişilen basit bir dizi üzerine inşa edilmiştir. Anahtar(key) kullanılarak hash fonksiyonu yardımıyla bir indeks üretilir ve bu indeks ile dizideki istenen veriye ulaşılır. Anahtar tekildir(uniqe), yani bir başka kayıtta aynı anahtar olamaz. Ancak veri aynı olabilir. Bir sınıftaki öğrencilere ait kayıtlar bu duruma bir örnektir. Her öğrencinin sadece kendine ait bir numarası vardır. Ancak aynı isme sahip iki öğrenci olması muhtemeldir. Burada öğrenci numarası anahtardır(key), öğrenci ismi ise bu anahtara ait veridir. Hash Tablosu veri yapısı, yorumlayıcı (interpreter) ve derleyici (compiler) tasarımlarında, veritabanı (database) uygulamalarında, şifreleme (cryptography) yöntemlerinde yoğun olarak kullanılmakta ve doğrusal arama, ikili arama gibi diğer arama yöntemlerine göre daha hızlı sonuç vermektedir. Tamsayı elemanlardan oluşan bir Hash Tablosunun Java ile kodlanması: public class Karma{ Ornek[] tablo; boolean silindi; int N; public Karma(int N){ tablo=new Ornek[]; silindi=new boolean[n]; this.n=n; }} Hash Fonksiyonu-h(x): Bu fonksiyonun görevi; kendisine verilen bir değerden (value), benzersiz bir tamsayı (key) üretmektir. Fakat uygulama alanında her zaman benzersiz bir sayı üretecek uygun fonksiyonu bulmak çok zor hatta bazı durumlarda imkânsızdır. Eğer farklı iki değerden aynı sayı üretilirse bu duruma çakışma/çatışma (collision) denir. Hash fonksiyonu; her bir veriyi ayırt edebilecek bir anahtar değer(genellikle sayısal) var olduğu durumlarda anahtar verinin yerleştirileceği konumu(indeksi) belirlemede ve bu konum vasıtasıyla veriye hızlı bir şekilde ulaşmada kullanılır. Elemanların Hash Tablosuna yerleşeceği konumu belirlemede kullanılan iyi bir Hash(karma) fonksiyonu; hem elemanları hash tablosuna iyi serpiştirmeli, hem de mümkünse iki farklı elemanı aynı konuma(pozisyona) adreslememelidir. Bir hashing fonksiyonundan beklenenler: Herhangi bir uzunlukta değer alabilmelidir. Çıktı olarak belirlenen uzunlukta anahtar (key) üretebilmelidir. Tek yönlü olmalıdır. Fonksiyon tarafından üretilen anahtardan fonksiyona verilen değer elde edilmemelidir. Çatışmalara fırsat vermemelidir. 2
3 Örnek: 25, 129, 35, 2501, 47, 36 tamsayılarının N=15 olan bir Hash Tablosuna yerleştirilmesi; Boyutu N olan bir tabloda, hash fonksiyonu (h(x)) bir x anahtarını 0 ile N-1 arasında bir değerle eşleştirir. Örneğin N=15 olan bir tablo için hash fonksiyonu; h(x) = x % 15 olarak belirlenebilir. Bu durumda; x=25 için h(25)=25%15=10 olur. Bu 25 sayısının hash tablosunda 10. Konuma-indekse yerleşeceği anlamına gelir. Diğer x anahtarlarının h(x)=x%15 fonksiyonu ile hesaplanması sonucunda Hash tablosundaki konumları(indeksleri) aşağıdaki tabloda yer almaktadır: x h(x) Bu durumda anahtar verilerin Hash Tablosu içindeki yerleri şu şekilde olur: SORU: x=66 anahtarının hash tablosundaki konumu-indisi ne olur? Hash Tablosu veri yapısındaki temel problemler; Hangi hash fonksiyonun adreslemede kullanılacağı, Hash Tablosunun büyüklüğünün nasıl seçileceği, Eğer hash fonksiyonu birden fazla elemanı aynı konuma-indekse adreslerse(yani çakışma olursa) ne yapılacağıdır. Hash (Karma) fonksiyonun Java dilinde kodlanması: Hash (Karma) fonksiyonun anahtarları tamsayılar ise yani N elemanlı hash tablosu tamsayı elemanlardan oluşuyorsa en ilkel hash fonksiyonu anahtar%n şeklinde olabilir. Böyle bir hash fonksiyonun Java dilinde kodları: int karma(int anahtar){ return anahtar %N; } Bu fonksiyonun kullanılmasıyla ilgili olarak çıkabilecek sorun, anahtarın belli değerleri daha fazla, diğer değerleri hiç almamasıdır. Örneğin anahtar çoğunlukla 10 a bölünen sayılardan oluşuyorsa(banka hesabında bulunan para gibi) N yi 10 veya 10 a bölünen sayılardan seçmek uygun olmayacaktır. Böyle durumlarda önerilen çözüm N yi asal sayılardan seçmektir. Soru:Katar(String) ler için kullanılabilecek bir hash fonksiyonu nasıl kodlanabilir? 3
4 Hash fonksiyonları ve Çakışma(collision) Problemi için Stratejiler: Bir Hash fonksiyonu iki farklı anahtar değer için aynı konum/indeks adresliyorsa buna çakışma/çatışma(collision) denir. Örnek: Hash fonksiyonu h(x)=x%10 olsun. Bu fonksiyon; x=35 için h(35)=35%10=5 x=65 için h(65)=65%10=5 olacaktır. Yani 35 ve 65 key değerlerinin Hash tablosundaki konumları her ikisin de 5 olacaktır. Hash tabloları için önemli bir kısıtlayıcı durum olan bu problemin çözümü için literatürde bazı stratejiler önerilmektedir. Aşağıda bu stratejiler açıklanmaktadır. Strateji-1: Çakışma(collision) probleminin giderilmesi için kullanılabilecek stratejilerden birisi; Aynı konuma/indekse adreslenen elemanları bir bağlı liste ile tutmaktır. Bu strateji literatürde ayrı zincir oluşturma (seperate chaining) olarak adlandırılır. Aşağıdaki şekilde her elemanı bir bağlı liste olan Hash tablosu verilmiştir. Bu hash tablosunun oluşturulmasında: hash fonksiyonu h(x)=x%n (N=15)olarak alınmış, Hash tablosuna yerleştirilen elemanlar 16, 47, 35, 36, 127, 99, 25, 2501, 129, 65, 29, 14. Ayrı zincir oluşturma (seperate chaining-bağlı Liste kullanarak) yöntemi ile çakışma problemini çözmede temel varsayım, aynı pozisyona adreslenen eleman sayısının az olmasıdır. (Literatürde, aynı pozisyona adreslenen bağlı liste eleman sayısı 10 u geçmedikçe bu stratejinin en uygun çözüm olacağı 4
5 belirtilmektedir. Bu durumda örneğin elemanın yerleştirileceği tahmin edilen bir tablonun 1000 lik açılması yeterli olacaktır). Bağlı liste ile çakışma probleminin çözümünde aynı konuma adreslenen her yeni eleman bağlı listenin başına ekleneceğinden, her ekleme(sona) işlemi için çalışma süresi O(1) zamanda gerçekleşecektir. Ayrı zincir oluşturma stratejisinde eğer sisteme çok fazla eleman eklenirse yapı doğrusal arama yöntemine benzemeye başlar. Sisteme çok az eleman eklenirse sistem rastgele erişimli bir sistem gibi olur. Bu sistemde ortalama olarak sisteme kaç eleman geleceği konusunda bir öngörüde bulunulmalıdır. Hash Tablosu daha sonra büyütülebilirse de bunun doğal olarak bir maliyeti olacaktır. Aşağıdaki Java kodları Bağlı Liste veri yapısından yararlanarak bir Hash Tablosu tanımlamayı sağlar. public class Karma{ Liste[] tablo; /*Liste veri yapısının tanımı ders kitabı Sayfa 22 Tablo 2.5 te verilmektedir.*/ int N; public Karma(int N){ tablo=new Liste[N]; for(int i=0;i<n;i++) tablo[]=new Liste(); this.n=n; }} Strateji-2: Çakışma probleminin çözümü için bağlı liste kullanmak her ne kadar problemi çözse de; i). Yeni bir veri yapısını kullanmak zorunda olma, ii). Her yeni eleman eklendiğinde hafızada yer açmanın getirdiği yavaşlama nedenleriyle dezavantajlıdır. Çakışma probleminin çözümü için önerilen bir diğer strateji açık adresleme (open addressing)dir. Açık adreslemede bir çakışma meydana geldiğinde sırayla karma fonksiyonu h(x)+f(1)%n, h(x)+f(2)%n, h(x)+f(1)%n, h(x)+f(3)%n, Burada f fonksiyonu çakışma giderme fonksiyonu olarak adlandırılmakta ve değişik stratejiler ile değişik adreslemeler yapılabilmektedir. Strateji-2.1.Doğrusal strateji(sıralı Yoklama Yöntemi -Linear Probing ):Doğrusal stratejide f ; f(i)=i gibi doğrusal bir fonksiyondur. Bu yolla i. Konumda bir çakışma varsa bir sonrakine, orada da çakışma varsa bir sonraki konuma adresleme mümkün olabilmektedir. Diğer deyişle, Sıralı Yoklama Yöntemi (Linear Probing) yönteminde hash fonksiyonları ile elde edilen indekse değer yerleştirilmeye çalışılır. İlgili indeks dolu ise ilk boş indekse yerleştirme yapılır. 5
6 Örnek : Tablo N=15 eleman uzunluğunda olsun. Yerleştirilecek eleman 65 olsun. Hash fonksiyonu h(x)=x%n kullanıldığını düşünelim. Tablonun 5 nolu konumu dolu olduğundan 6 nolu indekse geçilir,6 nolu indeks de dolu bu şekilde devam ederken ilk boş indeks 7. Konum olduğundan 65 değeri 7nolu konuma yerleştirilir. Benzer şekilde yeni bir eleman ekleme işlemi ilk boş bulunan yere yapılır, Silme işlemi de ilk boş alan bulunana kadar devam eder. Avantaj/Dezavantajlar: Bağlı listeler gibi ayrı bir veri yapısına ihtiyaç duyulmaz. Kayıtların yığın şeklinde öbeklenmesine neden olur. Silme ve arama işlemleri için gereken zaman aynı hash değeri sayısı arttıkça artar. Sıralamalı yoklama yönteminin en önemli dezavantajı arama sırasında başarısız aramalarda (unsucsessful search) tablonun sonuna kadar gitme zorunluluğudur. Strateji-2.2.İkinci Derece strateji(quadratic Probing): Bu stratejiye göre çakışmanın olduğu adrese gelen ikinci kayıt, Karesel (Quadratic) fonksiyonla sonraki adrese yerleştirilir. En çok kullanılan fonksiyon: f(i) = h(x)+ i 2 Yeni pozisyon için sırasıyla (h(x)+1 ), (h(x)+2 ),..., (h(x)+n ) değerlerine karşılık gelen pozisyonlara bakılır ve ilk boş olana yerleştirilir. 6
7 Örnek: Tablo N=15 eleman uzunluğunda ve yerleştirilecek eleman 65 olsun. Hash fonksiyonu h(x)=x%n kullanıldığını düşünelim. Tablonun 5 nolu konumu dolu olduğundan bir sonraki adres h(65)+ 1 yani 6 nolu indekse geçilir, 6 nolu indeks de dolu bu durumda h(65)+2 yani 9 nolu indekse geçilir, bu indeks de dolu olduğundan h(65)+3 = 14.konuma geçilir, Tabloda 14. konum boş olduğundan 65 sayısı 14 konuma yerleştirilir. Avantaj/Dezavantajlar: Anahtar değerlerini Sıralı Yoklama Yöntemi (linear probing) metoduna göre daha düzgün dağıtır. Yeni eleman eklemede tablo boyutuna dikkat edilmezse sonsuza kadar çalışma riski vardır. Örneğin; Boyutu 16 (0-15) olan bir tabloda 0, 1, 4 ve 9 pozisyonlarının dolu olduğu durumda 16 değerini eklemeye çalıştığımız zaman sonsuz döngüye girer. Strateji-2.3.Çift Karma (Double Hashing) Stratejisi: Çift Karma stratejisinde aynı pozisyona gelen ikinci kayıt için ikinci bir hash fonksiyonu kullanılır. İkinci hash fonksiyonu 0 değerini alamaz. En çok kullanılan fonksiyon: hash(x) = hash1(x) + i * hash2(x) hash2(x)= R ( x % R ), Burada R Tablo boyutundan küçük ilk asal sayı seçilebilir. hash(x) = hash1(x) hash(x) = hash1(x) + 1 * hash2(x) hash(x) = hash1(x) + 2 * hash2(x) 7
8 hash(x) = hash1(x) + 3 * hash2(x) Örnek: 65 değerinin eklenmesi hash1(x)= x % 15 hash2(x)=11 ( x % 11 ) (11 asal sayısı 14 ten küçük olan ilk asal sayıdır.) hash(65) = hash1(65) hash(65) =5 dolu hash(65) = hash1(5) + 1 * hash2(65) hash(65) =5 +(11-10)=6 dolu hash(65) = hash1(5) + 2 * hash2(65) hash(65) =5 +2=7 Avantaj/Dezavantajlar: Anahtar değerlerini Sıralı Yoklama Yöntemi (linear probing) metoduna göre daha düzgün dağıtır ve öbekler oluşmaz. İkinci Derece (quadratic probing) stratejiye göre daha yavaştır. Çünkü ikinci bir hash fonksiyonu hesaplanır. ÖZET Hash Tablo veri yapısı ile veri arama, ekleme ve silme işlemleri sabit zamanda(o(1)) gerçekleşir. Bununla beraber tablo içindeki elemanların sıralanması, en büyük ve en küçük elemanların bulunması gibi işlemlerde verimli değildir. Hash tablolarının en büyük kısıtı diziler ile oluşturulmalarıdır. 8
9 JAVA COLLECTION FRAMEWORK(JFC) VE HASH TABLE SINIFI Hashtable sınıfı Java Collections Framework un bir üyesidir. java.util Class Hashtable<K,V> java.lang.object java.util.dictionary<k,v> java.util.hashtable<k,v> Bu sınıf anahtarları değerlere göndererek bir hash table yaratır. Null olmayan her nesne anahtar yada değer olarak kullanılabilir. Bir Hashtable yapısına nesneleri depolamak ve onlara erişimi sağlamak için, anahtar olarak kullanılan nesnelerin hashcode() metodu ile equals() metodunu kılgılıyor olması gerekir. Bir Hastable yapısının performansını etkileyen iki parametre vardır: başlangıç sığası ve yükleme katsayısı. Hashtable içindeki eleman sayısı onun kapasitesidir. Başlangıç sığası; Hashtable yaratılırken belirlenen bileşen sayısıdır. Yükleme katsayısı ise, sığasının ne kadarı dolduğunda otomatik olarak sığa artımına geçeceğini belirleyen orandır. Genellikle, yükleme katsayısı 0,75 dir. Bu demektir ki, Hashtable bileşenleri %75 oranında dolduğunda, sığa otomatik olarak artar. Bir Hashtable kurulurken, gerektiğinde sığası ve yükleme katsayısı belirlenebilir. JCF HashTable sınıfının işlevleri: Hashtable Sınıfının Kurucuları(Constructor) Hashtable() Başlangıç kapasitesi 11 ve yükleme katsayısı 0,75 olan boş bir Hashtable yaratır. Hashtable(int initialcapacity) Başlangıç kapasitesi parametrenin belirlediği sayı ve yükleme katsayısı 0,75 olan boş bir Hashtable yaratır. Hashtable(int initialcapacity, float loadfactor) Başlangıç sığası ve yükleme katsayısı parametrelerle belirlenen sayılar olan boş bir Hashtable yaratır. clear() Hiçbir anahtar içermeyecek biçimde Hashtable yapısını temizler. clone() Hashtable nesnesinin boş bir kopyasını yaratır. Anahtarları ve değerleri kopyalamaz contains(object value) Verilen öğeye eşleşen bir ya da birden çok anahtar varsa true değeri verir. containskey(object key) Verilen anahtara eşleşen bir gönderim varsa true değerini verir. elements() Hashtable içindeki değerleri numaralar. equals(object o) 9
10 Verilen nesnenin, parametredeki nesneye eşit olup olmadığını bulur. get(object key) Verilen anahtara eşleşen değeri verir. Eğer verilen anahtara eşleşen öğe yoksa null verir. hashcode() Map in hash kodunu verir. isempty() Hashtable in boş olup olmadığını denetler. keys() Hashtable içindeki anahtarları sıralar. put(k key, V value) Verilen anahtarı verilen öğeye eşler. remove(object key) Verilen anahtarı ve ona eşlenen değeri siler. tostring() Hashtable içindeki nesnelerin bir string temsilini verir. Bu temsil, değerleri metin olarak yazar ve onları küme simgesi ([]) içinde verir. Örnek: import java.util.hashtable; import java.util.enumeration; public class HashtableDemo { public static void main(string[] args) { Hashtable<Integer, String> htable = new Hashtable<Integer,String>(); // Hashtable nesnesine oğe ekleme htable.put(new Integer(474), "Kars"); htable.put(new Integer(376), "Balıkesir"); htable.put(new Integer(322), "Ankara"); htable.put(new Integer(232), "İzmir"); htable.put(new Integer(284), "Edirne"); // Hashtable oğelerini yazdır System.out.println(hTable); // anahtar ve değerlere erismek icin Hashtable sıralaması Enumeration em = htable.keys(); while (em.hasmoreelements()) { // Hashtable'ın oğelerine erisim int key = (Integer) em.nextelement(); // değere erisim String value = (String) htable.get(key); System.out.println("Anahtar :" + key + " değer :" + value);} 10
11 Program Ekran Çıktısı: {284=Edirne, 322=Ankara, 376=Balıkesir, 232=İzmir, 474=Kars} Anahtar :284 değer :Edirne Anahtar :322 değer :Ankara Anahtar :376 değer :Balıkesir Anahtar :232 değer :İzmir Anahtar :474 değer :Kars Örnek: import java.util.enumeration; import java.util.iterator; import java.util.hashtable; import java.util.collection; public class HashtableDemo { public static void main(string[] args) { // Hashtable nesnesi yarat Hashtable ht = new Hashtable(); // Hashtable nesnesine oğe ekle ht.put("1", "Merve"); ht.put("2", "Derya"); ht.put("3", "Ufuk"); Collection c = ht.values(); System.out.println("Hashtable'in oğeleri :"); // koleksiyon uzerinde Iterator Iterator itr = c.iterator(); while (itr.hasnext()) System.out.println(itr.next()); // koleksiyondan sil c.remove("merve"); // Hashtable oğeleri System.out.println("Silme işleminden sonra Hashtable geri kalan oğeleri :"); Enumeration e = ht.elements(); while (e.hasmoreelements()) System.out.println(e.nextElement());}} Program Ekran Çıktısı: Hashtable'in oğeleri : Ufuk Derya Merve Silme işleminden sonra Hashtable geri kalan oğeleri : 11
12 Ufuk Derya 12
İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form
Class Hashtable java.util Class Hashtable java.lang.object java.util.dictionary java.util.hashtable Kılgıladığı Arayüzler: Serializable, Cloneable, Map Altsınıfları: Properties, UIDefaults
Detaylı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ı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ıKılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>
Class TreeMap java.util Class TreeMap java.lang.object java.util.abstractmap java.util.treemap Parametre tipleri: - the type of keys maintained by this map V - the type of mapped values ılgıladığı
DetaylıClass LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler:
Class LinkedHashMap java.util Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap Kılgıladığı arayüzler: Cloneable, Map, Serializable Bildirimi: public
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 Hash Tabloları ve Fonksiyonları Giriş Hash Tabloları Hash Fonksiyonu Çakışma (Collision) Ayrık Zincirleme Çözümü Linear Probing
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ü Dersin Planı B+ Tree Temel bir veritabanı çalışma kodu Hash (Karma) Heap Ağaçlar
Detaylı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ı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ıClass HashMap. Class HashMap java.lang.object java.util.abstractmap java.util.hashmap. Kılgıladığı Arayüzler: Cloneable, Map, Serializable
Class HashMap java.util Class HashMap java.lang.object java.util.abstractmap java.util.hashmap Kılgıladığı Arayüzler: Altsınıfları Bildirimi: Cloneable, Map, Serializable LinkedHashMap, PrinterStateReasons
Detaylı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ıKılgılayan Sınıflar: AbstractMap, Attributes, HashMap, Hashtable, IdentityHashMap, RenderingHints, TreeMap, WeakHashMap
Map Arayu zu java.util Interface Map Altarayüzleri: SortedMap Kılgılayan Sınıflar: AbstractMap, Attributes, HashMap, Hashtable, IdentityHashMap, RenderingHints, TreeMap, WeakHashMap Map, Java Collections
DetaylıBölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31
Bölüm 6. Karma Olcay Taner Yıldız 2014 O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, 2013 1 / 31 O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi
DetaylıClass PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.
Class PriorityQueue java.util Class PriorityQueue java.lang.object java.util.abstractcollection java.util.abstractqueue java.util.priorityqueue Parametre tipleri: E - the type of elements held
DetaylıClass HashSet. Metotlar. Class HashSet java.lang.object java.util.abstractcollection java.util.abstractset java.util.hashset
Class HashSet java.util Class HashSet java.lang.object java.util.abstractcollection java.util.abstractset java.util.hashset Kılgıladığı arayüzler: Cloneable, Collection, Serializable, Set Altsınıfları:
DetaylıGörsel Programlama DERS 04. Görsel Programlama - Ders04/ 1
Görsel Programlama DERS 04 Görsel Programlama - Ders04/ 1 Diziler ve Kolleksiyonlar(Collections) Diziler aynı tipli değişkenleri tutmak için kullanılan veri yapılarıdır. Diziler sabit uzunlukludur. Birkez
DetaylıKUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR
KUYRUKLAR QUEUES Doç. Dr. Aybars UĞUR Giriş Bu bölümde gerçek yaşamdaki kuyrukların bilgisayardaki gösterimleri üzerinde durulacaktır. Kuyruklar, eleman eklemelerin sondan (rear) ve eleman çıkarmaların
DetaylıFinal Sınavı Örnek Soruları Bahar 2018
Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Final Sınavı Örnek Soruları Bahar 2018 Süre: 70 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu
Detaylı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ıBAĞLAÇLI LİSTELER LINKED LISTS
BAĞLAÇLI LİSTELER LINKED LISTS Liste Günlük yaşamda listeler pek çok yerde kullanılmaktadır. Alışveriş listeleri, adres listeleri, davetli listeleri gibi. Bilgisayar programlarında da listeler yararlı
DetaylıDosya Yapıları. (Başlangıçtan itibaren izlenen yaklaşımlar)
Dosya Yapıları (Başlangıçtan itibaren izlenen yaklaşımlar) Kayıtları disk üzerinde farklı şekillerde organize edebiliriz. En iyi organizasyon şekli dosyayı nasıl kullanmak istediğimiz ile ilgilidir. Dosyanın
DetaylıHashMap O rnekleri. Örnek: /* U : Uranyum Au : Altın Ag : Gümüş Li : Lityum H : Hidrojen Altın Yeni değer : Radyum */
HashMap O rnekleri import java.util.hashmap; import java.util.iterator; import java.util.map; import java.util.set; HashMap hm = new HashMap(); hm.put("h", "Hidrojen"); hm.put("li", "Lityum"); hm.put("au",
DetaylıArrayList(int initialcapacity) Sığası (capacity) parametrenin belirlediği sayıda olan bir dizi oluşturur.
ArrayList Sınıfı java.util Class ArrayList java.lang.object java.util.abstractcollection java.util.abstractlist java.util.arraylist Java Collections Framework içinde yer alan bu sınıfın üç tane kurucusu
DetaylıİST 264 VERİ YAPILARI Bitirme Sınavı A Grubu
İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu SORU 1 Dünyanın en uzun beş nehrini öğeleri olarak kabul eden bir yığıt (stack) yaratınız. Yığıtın üçüncü öğesini bulunuz. Yığıtın üstündeki öğeyi bulunuz ve
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 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ıArrayList Uygulamaları
ArrayList Uygulamaları Aşağıdaki program önce boş bir ArrayList yaratıyor. Sonra sırasıyla şu işleri yapıyor: Listenin boş olup olmadığını yaz. Ambara üç tane öğe ekle. İndisi 2 olan yere bir öğe sokuştur.
DetaylıBAĞLAÇLI LİSTELER LINKED LISTS
BAĞLAÇLI LİSTELER LINKED LISTS Liste Günlük yaşamda listeler pek çok yerde kullanılmaktadır: Alışveriş listeleri, adres listeleri, davetli listeleri gibi. Bilgisayar programlarında da listeler yararlı
Detaylı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ıProgramlama Dilleri 3
Diziler (Arrays) 1 Dizi Kavramı 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
DetaylıClass LinkedHashSet. Class LinkedHashSet java.lang.object java.util.abstractcollection java.util.abstractset java.util.hashset java.util.
Class LinkedHashSet java.util Class LinkedHashSet java.lang.object java.util.abstractcollection java.util.abstractset java.util.hashset java.util.linkedhashset Kılgıladığı arayüzler Bildirimi Cloneable,
DetaylıD İ Z İ L E R A R R A Y S
D İ Z İ L E R A R R A Y S 1 Örneğin 120 adet öğrencinin adını klavyeden girip, daha sonra bunları ekrandan yazdıralım. Bunun için, her öğrenci için ayrı bir değişken tanımlanmalıdır. String ad1; String
DetaylıJAVADA DİZİ İŞLEMLERİ
JAVADA DİZİ İŞLEMLERİ Javada diziler nesnedirler, cdeki gibi hafızada yer kaplayan pointer değillerdir. Javada diziler, cye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız.
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İ AD SOYAD: TESLİM TARİHİ: OKUL NO: TESLİM SÜRESİ: 1 hafta Ödev No: 2 1- A)
Detaylı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ıC++ Dersi: Nesne Tabanlı Programlama 2. Baskı
C++ Dersi: Nesne Tabanlı Programlama 2. Baskı ³ Bölüm 19: Standart Şablon Kütüphanesi (vector) İçerik 19.1 Standart Şablon Kütüphanesi (STL) 19.2 vector SınıK 19.3 vectortanımı 19.4 vector Elemanlarına
DetaylıDOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
DOSYA ORGANİZASYONU ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Çarpışma çözümleme yöntemleri Sunum planı Bağlantıları kullanarak çarpışmaların çözümlenmesi. Coalesced Hashing (Birleştirilmiş
DetaylıĐlgili konular: Collection, Set, HashSet, Comparable, Comparator, TreeMap, Collections.synchronizedSortedSet(SortedSet), Serialized Form
Class TreeSet java.util Class TreeSet java.lang.object java.util.abstractcollection java.util.abstractset java.util.treeset Kılgıladığı arayüzler: Cloneable, Collection, Serializable, Set, SortedSet Bildirimi:
DetaylıHACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ
Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 Toplam HACETTEPE ÜNİVERSİTESİ 2014-2015 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 2. Ara Sınav 09.04.2015 Sınav Süresi: 90 dakika
Detaylı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ıÖ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ıInterface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator
Interface Comparator java.util Interface Comparator Kılgılayan sınıf: Collator Bildirimi: public interface Comparator Comparator arayüzü Java Collections Framework un bir üyesidir. Bir nesneler koleksiyonu
DetaylıGörsel Programlama DERS 03. Görsel Programlama - Ders03/ 1
Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit
DetaylıHash Tablosu. Barış Şimşek simsek ~ enderunix. org http://www.enderunix.org/simsek/
Hash Tablosu Barış Şimşek simsek ~ enderunix. org http://www.enderunix.org/simsek/ Pek çok uygulama sözlük tarzı EKLEME, ÇIKARTMA ve ARAMA gibi işlemleri gerçekleştirecek veri yapılarına ihtiyaç duyarlar.
Detaylı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ıYığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.
Stack Sınıfı (yığıt) java.util Class Stack java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector java.util.stack Stack (yığıt) sınıfı nesnelerin LIFO (last-input-first-output)
DetaylıJava ile Nesneye Yönelik Programlama (Object Oriented Programming)
Java ile Nesneye Yönelik Programlama (Object Oriented Programming) Giriş Yrd. Doç. Dr. Aybars UĞUR Örnek 1 Bir Yolcu sınıfı, yolcu1 nesnesi oluşturulması ve kullanılması class Yolcu String ad; String soyad;
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: Giriş Temel Veri Yapıları Tanımlamalı Veri Yapıları Veri Modeli ve Türleri
Detaylı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ıİ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İ: 2 hafta ÖDEV NO: 5 1- BANKA
DetaylıKUYRUKLAR. Doç. Dr. Aybars UĞUR
KUYRUKLAR QUEUES Doç. Dr. Aybars UĞUR Giriş Bu bölümde gerçek yaşamdaki kuyrukların bilgisayardaki gösterimleri üzerinde durulacaktır. Kuyruklar, eleman eklemelerin sondan (rear) ve eleman çıkarmaların
Detaylı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ıClass Vector. Class Vector java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector. Kılgıladığı arayüzler:
Class Vector java.util Class Vector java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector Kılgıladığı arayüzler: Altsınıfları Bildirimi: Cloneable, Collection, List, RandomAccess,
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 Öncelikli kuyruk konusunu hatırlayın. Kuyruğa sonradan eklenmesine rağmen öncelik
Detaylı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ıÇ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
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ıBölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16
Bölüm 8. Ayrık Küme Olcay Taner Yıldız 2014 O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, 2013 1 / 16 O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi
DetaylıJava da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )
Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts
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);
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ı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ıClass LinkedList java.lang.object java.util.abstractcollection java.util.abstractlist java.util.abstractsequentiallist java.util.
LinkedList java.util Class LinkedList java.lang.object java.util.abstractcollection java.util.abstractlist java.util.abstractsequentiallist java.util.linkedlist LinkedList sınıfı List arayüzünü kılgılar
Detaylı/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/
Ana Main Kodları /*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ package javaapplication1; public class JavaApplication1 public static void
DetaylıVeri Yapıları Laboratuvarı
2013 2014 Veri Yapıları Laboratuvarı Ders Sorumlusu: Yrd. Doç. Dr. Hakan KUTUCU Lab. Sorumlusu: Arş. Gör. Caner ÖZCAN İÇİNDEKİLER Uygulama 1: Diziler ve İşaretçiler, Dinamik Bellek Ayırma... 4 1.1. Amaç
DetaylıAynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...
Array (Diziler) Array Aynı tipten çok sayıda değişken topluluğudur. Birden fazla aynı tipteki değerle işlem yapmayı kolaylaştırır. X Y Score1 Score2 40 56 Grade 40 56 80 (0) (1) (2)... (13) Array tanımlama:
Detaylı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ı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ı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 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ı1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.
1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result
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ı 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İ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ıelemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.
Ön bilgi: Dizi tanımlayabilmeli. foreach deyimi bilinmeli. Rastgele sayılar (Random) bilinmeli. 1. Aşağıda tamsayı tipinde iki boyutlu bir dizinin nasıl tanımlandığı, bir fonksiyona parametre olarak nasıl
DetaylıDizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...
Javada Diziler Java da diziler nesnedir; içerisinde belirli sayıda eleman bulunur. Eğer bu sayı sıfır ise, dizi boş demektir. Dizinin içerisindeki elemanlara eksi olmayan bir tam sayı ile ifade edilen
DetaylıNesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.
Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir
Detaylı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. 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ı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ıFinal Sınavı Soruları Bahar 2018
Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Final Sınavı Soruları Bahar 2018 Süre: 70 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu İmza
Detaylı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ı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ı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ıVeri Yapıları ve Algoritmalar 2006-2007 2.dönem
Veri Yapıları ve Algoritmalar 2006-2007 2.dönem Öğretim Elemanları: Dr. A. Şima Etaner-Uyar Dr. Gülşen Cebiroğlu-Eryiğit Dersle ilgili bilgiler Ders Kitabı Data Structures and Algorithms in Java, 4th Ed.,
DetaylıAĞAÇLAR. Doç. Dr. Aybars UĞUR
AĞAÇLAR TREES Doç. Dr. Aybars UĞUR Giriş Bağlı listeler, yığıtlar ve kuyruklar doğrusal (linear) veri yapılarıdır. Ağaçlar ise doğrusal olmayan belirli niteliklere sahip iki boyutlu veri yapılarıdır (Şekil
DetaylıProgramlama Dilleri 1. Ders 4: Diziler
Programlama Dilleri 1 Ders 4: Diziler Genel Bakış Tanım Dizilerin tanımlanması Dizilere ilk değer verilmesi Yerel ve Global diziler Dizilerin birbirine atanması Diziler ile ilgili örnekler Çalışma soruları
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İ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 2 hafta Ödev No : 7 ****(ilk 3 soru çıktı üzerinde el
Detaylı6.046J/18.401J DERS 7 Kıyım Fonksiyonu (Hashing I) Prof. Charles E. Leiserson
Algoritmalara Giriş 6.046J/8.40J DERS 7 Kıyım Fonksiyonu (Hashing I) Doğrudan erişim tabloları Çarpışmaları ilmekleme ile çözmek Kıyım fonksiyonu seçimi Açık adresleme Prof. Charles E. Leiserson October
Detaylı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ı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ı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ıDr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net
Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)
DetaylıVeri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli
Veri Modelleri Ağaç Veri Modeli Ağaç Veri Modeli Verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen bir veri modelidir. Ağaç veri modeli daha fazla bellek
DetaylıProgramlama Dillerinde Kullanılan Veri Tipleri
Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs
DetaylıBIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ
2017-2018 BaharYarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü 7 BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Java Programlama Dili ve Algoritmadan Kodlamaya Geçiş) Yrd. Doç. Dr. İbrahim Küçükkoç
DetaylıJAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ
JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra
Detaylı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ıBölüm 5. Ağaç. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 73
Bölüm 5. Ağaç Olcay Taner Yıldız 2014 O. T. Yıldız, C && Java ile Veri Yapılarına, Boğaziçi Üniversitesi Yayınevi, 2013 1 / 73 O. T. Yıldız, C && Java ile Veri Yapılarına, Boğaziçi Üniversitesi Yayınevi,
DetaylıNesne Yönelimli Programlama
1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin
Detaylı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ıBir c sınıfının doğal sıralaması ile tutarlı olması (be consistent with equals) demek, c sınıfı içindeki her e1 ve e2 nesnesi için
Interface Comparable java.lang Interface Comparable Altarayüzleri Delayed, Name, ScheduledFuture Kılgılayan Sınıflar: Authenticator.RequestorType, BigDecimal, BigInteger, Boolean, Byte, ByteBuffer,
Detaylı