YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ

Slides:



Advertisements
Benzer bir sunumlar
Ayrık Yapılar Algoritma Analizi.
Advertisements

STRİNG FONKSİYONLARI.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Yığın ve Kuyruk.
Ders İçeriği Bağlantılı Liste İki Yönlü Bağlantılı Liste
Nesneye Yönelik Programlama
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Doğrusal Olamayan Ayrık Dinamik Sistemler
Hashing Çırpı, kırpma, özetleme, adresleme
MATLAB’de Diziler; Vektörler ve MAtrisler
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
KÜMELER.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 3: Döngüler
Özyineli Sıralama Algoritmaları
Nesneye Yönelik Programlama
VERİ TABANI ve YÖNETİMİ
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 9. Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1,
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 5: Fonksiyonlar
İndex Yapıları.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL KONU : LİSTELERE.
Veri Yapıları Veri, her türlü değer demektir. Veri yapılarının tasarlanma ve oluşturulma amacı; “verinin işlenmesini kolaylaştırmak ve bu işlemi daha verimli.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
PROLOG PROGRAMLAMA DİLİNDE
SINIFLANDIRMA VE REGRASYON AĞAÇLARI
FONKSİYONLAR.
NESNEYE YÖNELİK PROGRAMLAMA
C PROGRAMLAMA DİZİLER (ARRAYS).
DOĞRUSAL DENKLEM SİSTEMLERİ ve MATRİSLER
Dizi ve ArrayList.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Ders İçeriği Liste Soyut veri yapısı (ADT)
Bölüm 3: Diziler BTEP 102 – Veri Yapıları ve Programlama
Ders 1: ARRAYLIST Hazırlayan : Yrd. Doç. Dr. Barış GÖKÇE
BAZI VERİ YAPILARI Yılmaz KILIÇASLAN. Sunu Planı Bu derste, çizgeler gibi bazı teorik nesnelerin bellekte nasıl tutulduğunu ve algoritmalarca nasıl işlendiğini.
DİZİLER Arrays.
FONKSİYON TARİHİ FONKSİYON
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
FONKSİYONLAR.
Matematiksel Veri Yapıları. İçerik Matematiksel Veri Yapıları – Kümeler – Diziler – Fonksiyonlar – İkili ilişkiler Sonsuz kümeler – Sonlu nicelik – Sonsuz.
Veri yapıları Hafta3 Dizi Yapıları.
pointerverisonraki 0Tülay 1Vedat6 LB3=22Pelin15 3Burak9 4Kadir 5Seyhan13 6Utku16 LB1=77Ayşe3 8 9Ceyda Dilek 12 13Şükrü4 LB2=1414Zeynep17.
KUYRUK (QUEUE).
Hashing (Çırpılama).
BSM447 – MOBİL UYGULAMA GELİŞTİRME Öğr. Gör. Nevzat TAŞBAŞI 6. Hafta.
Chapter 7 Space and Time Tradeoffs Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi.
C Sharp 9. hafta - dIZILER.
DİZİLER Bellekte sıralı bir şekilde bulunan ve aynı türden bilgilerin saklandığı veri yapısına dizi (array) denir. Örneğin kullanıcıdan 7 kişinin not ortalamasını.
BMS-301 Kabuk Programlama Güz 2017 (7. Sunu) (Yrd. Doç. Dr. Deniz Dal)
YAPISAL PROGRAMLAMA Hafta-7
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Ağ Topolojileri.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

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 Celal Bayar Üniversitesi

Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Hash Tabloları İdeal bir hash tablo veri yapısı, içerisinde elemanlar barındıran sabit bir diziden oluşur. Dizi içerisindeki elemanlar, index hesaplamasında kullanılacak anahtar (key) isimli özel bir üye bulundurmak zorundadırlar. Anahtar; integer veya string bir değer olabilir. Örneğin: Bir Öğrenci nesnesindeki Öğrenci No veya Öğrenci TC Kimlik No olabilir. Dizinin boyutu TabloBoyutu olup, Diziye eklenecek elemanlar 0’dan (TabloBoyutu-1)’e kadar olan indekslerde saklanırlar. AnahtardanIndekse dönüştürme işlemine Hashing, bu işi yapan fonksiyona Hashing fonksiyonu denir. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Örnek Hash Tablosu 1 Elemanlar Hash Fonksiyonu 2 Cem 1111 3 Cem 1111 Ada 2222 anahtar 4 Ada 2222 Sibel 3333 5 6 Sibel 3333 İpek 4444 7 İpek 4444 anahtar 8 9 Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Hash Fonksiyonu (devam…) f(x) = x % 15 ise f(x) ? if x = 25 129 35 2501 47 36 f(x) = 10 9 5 11 2 6 Anahtarların diziye yerleşimi aşağıdaki gibidir: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 _ _ 47 _ _ 35 36 _ _ 129 25 2501 _ _ _ Silme, ekleme ve arama işlem karmaşıklığı O(1), ancak bir problem var??? Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Hash Fonksiyonu (devam…) Soru: Eğer x = 65 anahtarını eklemek istersek ne olur? x = 65 f(x) = 5 Anahtarların diziye yerleşimi: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 _ _ 47 _ _ 35 36 _ _ 129 25 2501 _ _ _ 65(?) 35 ve 65 anahtarları için f(x) fonksiyonundan aynı indis değeri döndü. Çakışma (collision) oldu… Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Çakışma (Collision) Hashing işlemi sonucunda farklı anahtarlara sahip iki eleman, aynı dizi indeks değeri üretilebilir. Eğer en az iki eleman için aynı indeks değeri üretilirse bu duruma çakışma denir. Çakışma istenmeyen bir durumdur. Çakışmayı çözmek için iki yöntem vardır: Ayrık zincirleme (Separate chaning) Açık adresleme (Open adressing) Doğrusal ölçüm (Linear probing) Karesel ölçüm (Quadratic probing) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Ayrık Zincirleme Çözümü Aynı indis pozisyonuna gelen kayıtlar bağlı listelerle gösterilir. Çarpışma meydana gelirse ikinci eleman bir bağlı liste ile birinci elemana bağlanır. Bağlı listeler tek veya çift yönlü olabilir. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

1.Ayrık Zincirleme Çözümü (devam…) 1 2 3 4 5 6 7 8 9 81 64 25 36 16 49 1.Ayrık Zincirleme Çözümü (devam…) Anahtarlar: 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 hash(anahtar) = anahtar % 10 Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Doğrusal Ölçüm (Linear Probing) Çakışma meydana geldiğinde, doğrusal arama mantığıyla, uygun boş yerler sırayla aranırlar. Sırayla deneme işlemi gerçekleştirilir. Hash tablosunun sonuna gelindiyse, başa dönülür. Döngüsel Kuyruk mantığında veya döngüsel dizi Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Doğrusal Ölçüm (Linear Probing) (devam…) TabloBoyutu = 15. 65 elemanını eklemek istiyoruz, ancak 5 numaralı indiste zaten 35 elemanı var. Çakışma gerçekleşti, ne yapacağız? 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 _ _ 47 _ _ 35 36 _ _ 129 25 2501 _ _ _ 65(?) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Doğrusal Ölçüm (Linear Probing) (devam…) Çözüm: 65 Ekle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 _ _ 47 _ _ 35 36 _ _ 129 25 2501 _ _ _    denemeler Toplam 3 deneme yaptık ve uygun yeri bulduk. 65 Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Uygulamayı indirip çalıştırın.… http://www.kisa.link/5dbI  Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları İYİ ÇALIŞMALAR… Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları