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Ü

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

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

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

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

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

Alıştırma 1: Yineleme

VERİ YAPILARI VE PROGRAMLAMA

BIL222 Veri Yapıları ve Algoritmalar

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

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

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

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

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

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

Veri Yapıları ve Algoritmalar dönem

DOSYA ORGANİZASYONU. Doğrudan erişimli dosya organizasyonu ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

BİL1001 Bilgisayar Bilimlerine Giriş 1

YZM 2116 Veri Yapıları

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

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

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

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

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

Nesne Yönelimli Programlama

Arama Algoritmaları. Doğrusal Arama ve Binary Arama

Temel Dosya İşlemleri. Kütük Organizasyonu 1

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları

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

BIP116-H14-1 BTP104-H014-1

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

BİL-142 Bilgisayar Programlama II

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

Selection Sort Insertion Sort

YZM 2116 Veri Yapıları

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

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

ESKİŞEHİR OSMANGAZİ ÜNİVERSİTESİ

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

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

YMT219 VERİ YAPILARI ÖDEV-1

ALGORİTMA VE PROGRAMLAMA I

YZM 2116 Veri Yapıları

BÖLÜM 6. ÇEŞİTLİ KONULARDA ALGORİTMA VE AKIŞ ŞEMALARI

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; }

Eln 1002 Bilgisayar Programlama II

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

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

YZM 2116 Veri Yapıları

Konular. Sequential File Organization. Direct File Organization #$% &'#(# Binary Search Interpolation Search Self-Organizing Sequential Search

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

YZM 2116 Veri Yapıları

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

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

1 Temel Kavramlar. Veritabanı 1

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

#include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct { int ID; char isim[15]; char soyisim[15];

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

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

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

FINDIK Herkese Açık Filtre

BÖLÜM 11: YAPISAL VERİ TİPLERİ

Algoritmalara Giriş Eylül 21, 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Çalışma notu 6

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

İşletim Sistemlerine Giriş

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

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

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

ALGORİTMA VE PROGRAMLAMA I

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

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

PROGRAMLAMA. Dosyalama İşlemleri. Yrd. Doç. Dr. Bülent Çobanoğlu. Sakarya Üniversitesi Mekatronik Mühendisliği. Yrd.Doç.Dr.

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

Arasınav Örnek Soruları Bahar 2018

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

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

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

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

BAĞLI LİSTELER BAĞLI LİSTELER

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

C Dersleri Bölüm 3 : Program akışı

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

VT Gerçeklenmesi Ders Notları- #6

Algoritma Analizi Big O

Pointer Kavramı. Veri Yapıları

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

Fiziksel Veritabanı Modelleme

Sanal Bellek (Virtual Memory)

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

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

Final Sınavı Örnek Soruları Bahar 2018

Gazi Üniversitesi Merkez Kütüphanesi

Mantıksal çıkarım yapmak. 9 ve üzeri

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Final Sınavı Soruları Bahar 2018

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

Program AkıĢ Kontrol Yapıları

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

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

Transkript:

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

Sunum planı Sıralı erişimli dosya organizasyonu yöntemleri Basit sıralı arama (Simple sequential search) İkili arama (Binary search) Ara değer arama (Interpolation search) Özel durumlar için sıralı arama (Self organizing sequential search) Öne taşıma (Move to front) Konum değiştir (Transpose) Sayaç (Count)

Sıralı erişimli dosyalar Sıralı erişimli dosya yapısında herhangi bir kayda ulaşmak istenildiğinde ilgili kayda ulaşılıncaya kadar kayıtlar üzerinde dolaşmak gerekir. Başarısız bir aramada dosyadaki tüm kayıtlara bakılması gerekir. İstenilen kayda erişme hızını arttıran arama yöntemleri bulunmaktadır.

Basit sıralı arama (Simple Sequential Search) Dosyadaki kayıtlar, ilk kayıttan başlanarak sırayla aranan kayıtla karşılaştırılır. Aranan kayda en iyi 1 adımda (retrieval probe), en kötü kayıt sayısı kadar adımda ulaşılır. Ortalama olarak düşünüldüğü zaman N tane kayıttan oluşan bir dosyada bir kayda ulaşmak için gerekli adım sayısı ortalama: Ortalama adım sayısı = her kayda erişmek için gerekli adım sayılarının toplamı/n

İkili arama (Binary Search) Kayıt sayısı fazla olduğunda, basit sıralı arama ile erişim işlem yükünü arttırmaktadır. Bu yüzden işlem yükünü azaltan ikili arama yöntemi tercih edilebilir. Bu yöntemde arama yapılacak kaydın anahtar değerleri sıralı olmalıdır. Aranan kayda ulaşabilmek için kayıtlar sürekli iki parçaya ayrılır ve uygun parçada kayıt aranır. Bu yöntemde n kayıtlı bir veri setinde en fazla [log 2 n] karşılaştırma yaparak istenen kayda erişmek mümkündür.

İkili arama algoritması { /* n adet kayıt için */ alt_sinir:=1; ust_sinir:=n; while (alt_sinir <= ust_sinir) { ortanca:=[(alt_sinir+ust_sinir)/2]; if (aranan_key= dizi[ortanca]) { printf( Başarılı Arama ); return;} else if (aranan_key>dizi[ortanca]) alt_sinir:=ortanca+1; else ust_sinir:=ortanca-1; } printf( Başarısız Arama ); }

Ara değer arama (Interpolation Search) Bu arama yöntemi İkili Arama algoritmasına benzemektedir. Verilerin sıralı olması gerekmektedir. Arama sırasında aşağıdaki formül ile orta nokta bulunur. Orta:=[alt_sinir+((aranan_anahtar dizi[alt_sinir]) /(dizi[ust_sinir]-dizi[alt_sinir]))*(ust_sinir alt_sinir)]

Ara değer arama algoritması public int interpolationsearch(int[] sortedarray, int tofind) { // Returns index of tofind in sortedarray, or -1 if not found int low = 0; int high = sortedarray.length - 1; int mid; while (sortedarray[low] <= tofind && sortedarray[high] >= tofind) { mid = low + ((tofind - sortedarray[low]) * (high - low)) / (sortedarray[high] - sortedarray[low]); //out of range is possible here // Repetition of the comparison code is forced by syntax limitations. high = mid - 1; else return mid; } if (sortedarray[low] == tofind) return low; else } return -1; // Not found if (sortedarray[mid] < tofind) low = mid + 1; else if (sortedarray[mid] > tofind)

Özel durumlar için sıralı arama (Self organizing sequential search) Dosyadaki kayıtlar içinde diğerlerine göre daha sık erişilen kayıtlar bulunuyorsa kullanılması avantaj sağlar. En sık kullanılan kayıtların dosyanın en başına taşınması yoluyla uygulanan bir yöntemdir. Örneğin; telefon numaralarının bulunduğu bir dosyada arama yapılırken bazı numaralara daha sık erişilmek istenebilir. Böyle bir durumda bu yöntem kullanılabilir. 3 farklı şekilde uygulanabilir. Öne taşıma (Move To Front) Konum değiştir (Transpose) Sayaç (Count)

Öne taşıma (Move to front) Aranan kayıt dosyanın ilk kaydından itibaren sırayla aranır ve bulunduğunda bu kayıt dosyanın ilk kaydı olarak kaydedilir. Aranan kaydın eski pozisyonuna kadar eski kayıtlar 1 pozisyon sonrasına kaydırılır. Aranan kayıt ilk kayıtsa herhangi bir değişiklik yapılmaz.

Konum değiştir (Transpose) Aranan kayıt dosyanın ilk kaydından itibaren sırayla aranır ve bulunduğunda bu kayıt, kendinden önceki ilk kayıtla yer değiştirir. Diğer kayıtlar aynı pozisyonlarında kalır. Aranan kayıt ilk kayıtsa herhangi bir değişiklik yapılmaz.

Sayaç (Count) Dosyadaki her kayıt için ayrıca kayda kaç kez erişildiği bilgisini tutan bir sayaç alanı bulunmaktadır. Kayıtlar dosyada en büyük sayaç değerli kayıttan itibaren bulunmaktadır. Aranan kayıt, dosyada ilk kayıttan itibaren sırayla aranır, bulunduktan sonra kaydın sayaç değeri bir arttırılır. Dosyadaki kayıtlar Yeni sayaç (count) değerine göre büyükten küçüğe sıralanır.