Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü

Benzer belgeler
DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ 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ü

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

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

YZM 2116 Veri Yapıları

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi

Skip List veri yapısında Seviye Optimizasyonu

BIL222 Veri Yapıları ve Algoritmalar

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

Araştırma Makalesi / Research Article. Skip List Veri Yapısında P Eşik Değerlerinin Rastgele Seviye Oluşturma ve Performansa Etkisi

Ağaç (Tree) Veri Modeli

YZM 2116 Veri Yapıları

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

Week 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > =

Yrd. Doç. Dr. Caner ÖZCAN

VERİ YAPILARI VE PROGRAMLAMA

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

YZM 2116 Veri Yapıları

#$% &'#(# Konular. Binary Tree Structures. Binary Search Trees AVL Trees Internal Path Reduction Trees Deerlendirme

Fiziksel Veritabanı Modelleme

AĞAÇLAR. Doç. Dr. Aybars UĞUR

Görsel Programlama DERS 04. Görsel Programlama - Ders04/ 1

ALGORİTMA VE PROGRAMLAMA II

Veri Yapıları Laboratuvarı

YZM 2116 Veri Yapıları

Algoritmalara Giriş 6.046J/18.401J

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

Çok Yollu Ağaçlar: B*-Trees B*-Trees

BIP116-H14-1 BTP104-H014-1

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

Yrd. Doç. Dr. Caner ÖZCAN

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

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

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

GENETİK ALGORİTMA ÖZNUR CENGİZ HİLAL KOCA

İşletim Sistemlerine Giriş

Ağaç Yapıları (Tree Structures) Kütük Organizasyonu 1

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR

23. Sistem denge denklemlerinin direkt kurulması

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

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

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

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

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

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

BAĞLAÇLI LİSTELER LINKED LISTS

SIMMAG Kullanım Kılavuzu. Adem Ayhan Karmış. Ana Ekran

Web Madenciliği (Web Mining)

Week 6: Bağlı Liste (Linked List) BAĞLI LİSTE KAVRAMI TEKİL (SINGLE) BAĞLI LİSTE ÇİFT (DOUBLE) BAĞLI LİSTE DAİRESEL (CIRCULAR) BAĞLI LİSTE

Göstericiler (Pointers)

YZM 2116 Veri Yapıları

DOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

Elektrik Devre Temelleri 3

BAĞLAÇLI LİSTELER LINKED LISTS

YZM 2116 Veri Yapıları

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Veri Yapıları Dersi. Proje#2

Bölüm 4: DDL Veri Tanımlama Dili

ALGORİTMA VE PROGRAMLAMA I

Sihirbaz Kullanarak Sorgu Oluştur : Sihirbaz sorguyu hazırlayan kişiye sorular sorar ve yanıtlarına göre sorgu oluşturur.

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1

Algoritmalara Giriş 6.046J/18.401J

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

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

Öğr. Gör. Serkan AKSU

Algoritmalara Giriş Ekim 17, 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Dağıtım 15.

ALGORİTMA VE PROGRAMLAMA II

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

Indeksli Sıralı Erişimli Dosya Yapıları (Indexed Sequential File Organization) ve. Bit Seviyesinde İşlemler (Bit Level and Related Structures)

VERİTABANI. SQL (Structured Query Language)

Graflar bilgi parçaları arasındaki ilişkileri gösterirler.

İ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İ

BÖLÜM 1 GİRİŞ 1.1 GİRİŞ

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.

AVL Agacı {\} /\ Suhap SAHIN Onur GÖK

MERKEZİ SİCİL KAYIT SİSTEMİ (MERSİS) DEĞİŞİKLİK BAŞVURU İŞLEMLERİ SIK KARŞILAŞILAN SORUNLAR. 08 OCAK 2019 İ s t a n b u l

EEM211 ELEKTRİK DEVRELERİ-I

Çizgeler (Graphs) Doç. Dr. Aybars UĞUR

Pointer Kavramı. Veri Yapıları

Final Sınavı Soruları Bahar 2018

Standard Template Library

PROSES KONTROL DENEY FÖYÜ

TABLO ve HÜCRE SEÇİMİ

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2

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

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

İşletim Sistemlerine Giriş

Algoritmalar. İkili Arama Ağaçları. Bahar 2016 Doç. Dr. Suat Özdemir 1

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

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

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli

Ağaçlar(Trees) AĞAÇ VERİ MODELİ

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Fonksiyon Optimizasyonunda Genetik Algoritmalar

Ağaçlar (Trees) Ağaçlar (Trees)

Transkript:

Çanakkale Onsekiz Mart Üniversitesi Bilgisayar Mühendisliği Bölümü Skip List(Atlamalı Liste) Veri Yapısı Seminer-30.03.2007/SkipList 1

Temel İhtiyaçlar Nelerdir? 1. Bilgisayarda verileri belirli yapıda tutmak. 2. Daha önce saklanan elemanlara hızlı şekilde erişmek. 3. Saklanan verilerden istenilenin istenildiği zaman silinmesi. 4. İstenilen zamanda yeni verilerin eklenmesi. 5. Mevcut verilerin değiştirilmesi. Seminer-30.03.2007/SkipList 2

Liste Veri Yapısı? Liste veri yapısı, temel ihtiyaçlara cevap vermek için geliştirilmiş bir yapıdır. Algoritma ve verilerden oluşur. Listenin elemanlarına düğüm adı verilir. Her eleman bir anahtar(key) ve bir değer(value) çiftinden oluşmaktadır. Seminer-30.03.2007/SkipList 3

Liste Düğümlerinin Gösterimi Anahtar Değer Anahtar : Bu düğümü diğer tüm düğümlerden ayıran temel veridir. Değer : Düğümde saklanılan veri ya da verilerdir. Liste bir ya da birden fazla düğümden oluşabilir. Her düğümün anahtarı diğerinden farklıdır. Seminer-30.03.2007/SkipList 4

Listenin Gösterimi Liste bir ya da birden fazla düğümden oluşabilir. Her düğümün anahtarı diğerinden farklıdır. Her düğüm kendinden sonraki düğümü gösteren bir bağa sahiptir. Bu tip listeye bağlı liste adı verilir. Listenin baş elemanı (header) anlamsız son eleman Seminer-30.03.2007/SkipList 5

Liste Veri Yapısından İstenilenler * Dinamik eleman ekleme * Elemanların sıralı olması * Aramanın hızlı yapılamabilmesi * Ekleme, Silme ve Arama işlemlerinin kolay yapılabilmesi *Bu işlerin gerçekleştirilme performansının iyi olması. Seminer-30.03.2007/SkipList 6

Liste Veri Yapısından İstenilenler Aşağıdaki bağlı listede elemanlar istenilen sayıda dinamik eklenebilir. Eklenen elemanlar sıralı olarak eklenebilir. Ekleme, Silme ve Arama işlemlerinin kodlanması kısmen kolaydır. ARAMA performansı kötüdür. performans = O(n) Seminer-30.03.2007/SkipList 7

En Temel Problem ARAMA Arama işlemi dinamik olarak genişleyebilen veri yapılarında son derece önemlidir. Örneğin bir veritabanındaki 1.000.000 kayıt içerisinden 1.000.000 uncu istenilirse, bağlı liste yapısında en kötü halde her eleman tek tek kontrol edilmelidir. Seminer-30.03.2007/SkipList 8

En Temel Problem ARAMA Bağlı liste veri yapısından başka Balanced Tree, Binary Tree, Red-Black Tree, AVL Tree gibi veri yapılarıda kullanılır. Bu veri yapılarının arama performansları oldukça iyidir fakat ekleme ve silme işlemleri oldukça zaman almaktadır. Seminer-30.03.2007/SkipList 9

Skip List? Listemiz sıralı olsun ve her 2 elemandan 2. eleman kendisinden 2 sonra gelen elemana fazladan bir bağ içerirse? n=toplam düğüm sayısı Arama işleminde en fazla [n/2]+1 eleman inceleyerek aradığımız elemana ulaşırız. Seminer-30.03.2007/SkipList 10

Skip List? Aynı şekilde her dördüncü eleman, kendinden sonraki dördüncü elemana bir bağ içeriyorsa n=toplam düğüm sayısı Arama işleminde en fazla [n/4]+1 eleman inceleyerek aradığımız elemana ulaşırız. Seminer-30.03.2007/SkipList 11

Skip List? Bu şekilde her 2 i. düğüm kendinden sonra gelen 2 i. düğüme bir bağ(işaretçi) tutarsa n=toplam düğüm sayısı Arama işleminde en fazla log2(n) eleman inceleyerek aradığımız elemana ulaşırız. Seminer-30.03.2007/SkipList 12

Skip List? Bu veri yapısı hızlı arama için kullanılabilir fakat ekleme ve silme işlemlerinde pratik olmayacaktır. Her eleman için 2^i kuralına uyma kontrolü yapılmalıdır. Seminer-30.03.2007/SkipList 13

Skip List? Bu yapıda bulunan ve kendinden sonraki k adet düğüme işaretçi tutan düğümlere k seviyeli(k level) düğüm denilir. Seminer-30.03.2007/SkipList 14

Skip List? Peki düğümlerin seviyeleri rastgele seçilirse? Seminer-30.03.2007/SkipList 15

Skip List? *Bir düğümdeki i. gösterici, kendinden sonraki i seviyeli düğümü ya da daha yüksek seviyeli düğümü göstersin. *Bir düğümün seviyesi, düğüm eklenirken rastgele belirlenir. *SkipList bağlı liste temellidir fakat ara elemanları atlamak için fazladan işaretçiler kullanır. Seminer-30.03.2007/SkipList 16

Skip List? * i. seviyede bulunan bir düğümün, sonraki düğümleri işaret eden i adet işaretçisi vardır. * MaxLevel değişkeni ile skiplist te olabilecek maksimum seviye sınırlandırılır. * SkipList'in seviyesi içerisindeki en büyük seviyeye sahip düğümün seviyesidir. * Listenin baş(header) elemanında 1..MaxLevel adet işaretçi bulunur. Seminer-30.03.2007/SkipList 17

Skip List'in Gerçekleştirimi ARAMA : Listenin en üst seviyesinden aramaya başlanılır. Aranan elemanın anahtarı geçilmeyecek şekilde ileriye doğru arama gerçekleştirilir. Eğer mevcut seviyede aramada sonuç alınmaz ise bir alt seviyeye geçilir. Seminer-30.03.2007/SkipList 18

Skip List?? =12 Seminer-30.03.2007/SkipList 19

Skip List'in Gerçekleştirimi EKLEME ve SİLME : Bu işlemler öncelikle bir arama işlemi, daha sonra da uygun olan yere ekleme ya da bulunan elemanın silinmesi işlemi içerir. Yapılan işlemden sonra aradaki bağlar(işaretçiler) güncellenir. update isimli bir vektörün her i. elemanı i. seviyenin en sağındaki elemana ya da eklenecek/silinecek elemanın sol tarafındaki daha yüksek seviyeli düğümlere işaretçi tutar. Ekleme işlemi listenin seviyesinden yüksek ise, listenin seviyesi güncellenir ve update vektörünün ilgili bölümleri güncellenir. Seminer-30.03.2007/SkipList 20

Skip List'in Gerçekleştirimi Seminer-30.03.2007/SkipList 21

Skip List'in Gerçekleştirimi Seminer-30.03.2007/SkipList 22

Skip List'in Gerçekleştirimi Seminer-30.03.2007/SkipList 23

Çanakkale Onsekiz Mart Üniversitesi Bilgisayar Mühendisliği Bölümü Skip List(Atlamalı Liste) Veri Yapısı Seminer-30.03.2007/SkipList 24