You are on page 1of 31

VER YAPILARI ve ALGORTMA

ALGORTMA

VER YAPISI

Veri Yaplar ve Algoritma

nsanlar dnme ve problem zme yeteneini algoritmalarla makinelere aktarrlar.

Bir ii gerekletirmek iin gerekli olan ilem bilgileri ve zm yntemleri algoritmalara adm adm nakedilir.

Bir makinenin yeteneini belirleyen en nemli unsur bu ynden bakldnda algoritmalardr.

Eer bir problemin algoritmasn oluturabiliyorsak o problem makinelerle zlebilir ve bunun terside dorudur. Yani bir problem iin algoritma kurulamyorsa gc ne olursa olsun bu problem makine (bilgisayar) ile zlemez.

Sanal makineden soyutlanma (Abstraction of virtual machine)

int sum(int[] x) { int sum = 0; n = 0; while (n < x.length) { sum += x[n]; } return sum; }

00101010101010 10101011111010 11101010101110 00101010101010 ...

Algoritma Nedir?

Algoritma bir problemi zme ulatrmak iin uygulanan kurallar dizisidir. Herhangi bir giri verisine karlk, k verisi elde edilmesi gereklidir. Bunun dndaki durumlar algoritma deildir.

Algoritmann nemli zellikleri

Yazlan komutun tek bir anlama gelmesi ve herkes tarafndan anlalr olmas gereklidir. Yazlan komutlarn uygulanabilir olmas gereklidir. Her algoritmann sonlanmas, altrlan komut saysnn sonsuz olmamas gereklidir.

Algoritma Sreci

Tasarm (design) Doruluunu ispat etme (validation) Analiz (analysis) Uygulama (implementation) Test

Algoritma Analizi

Neden algoritmay analiz ederiz?


Algoritmann performansn lmek iin Farkl algoritmalarla karlatrmak iin Daha iyisi mmkn m? Olabileceklerin en iyisi mi?

zelliklerinin analizi

Algoritmann alma zaman Hafzada kaplad alan

alma Zaman Analizi


Algoritma 1 T1(N)=1000N Algoritma 2 T2(N)=N2
N giri verisi

alma zaman T1(n)

Algoritma 1
N giri verisi
1000101010100011111000110001110101 0101010101010010001010101000100000 000000011110101000111010

alma zamanT2(n)

Algoritma 2

alma Zaman Analizi


alma zaman T(N) Algoritma 2

Algoritma 1

1000

Giri verisi N

N 10 100 1000 10000 100000

T1 10-2 sec 10-1 sec 1 sec 10 sec 100 sec

T2 10-4 sec 10-2 sec 1 sec 100 sec 10000 sec

N deerinin 1000den kk olduu durumlarda iki algoritma arasndaki alma zaman ihmal edilebilir byklktedir.

Sralama Algoritmalar Arama Algoritmalar

Niin Veri Yaps Kullanlr?


lemci-Bellek

nsanlarn zekalarn etkin bir biimde kullanabilmeleri hafzalarnnda gl olmas gerekir. Hafzasn etkin kullanamayan yada hafzas zayf olan insanlar bu yksek zekalarndan yeterince faydalanamayabilirler.

Aynen bunun gibi bilgisayarn problemin zmnde gsterecei performans bellek ile ok yakndan ilgilidir. Bilgisayarn gc ne kadar yksek olursa olsun bellek kapasitesi dk ise bilgisayar bu gcn etkin olarak gsteremeyecektir. Bellein kapasitesine gre alacaktr. Bu bakmdan bilgisayar belleinin en iyi biimde kullanlmas ve gereksiz bellek harcamas yaplmamas ok nemlidir.

Bilgisayar biliminde bellein en iyi kullanm ve organizasyonu iin veri yaplar tasarlanmaktadr. Bu veri yaplar sayesinde bilgilerin bellekteki organizasyonu ve bilgilere eriim iin mekanizmalar gelitirilmektedir.

Niin Veri Yaps Kullanlr?


Yazlm-Donanm

PROBLEM

Anabellek sra sra dizilmi hcreler biiminde dzenlenmitir. Herbir hcre belli hacimde bilgiyi saklar ve Gerektike buradaki bilgilere ulalmak iin kullanlr. Karmak bir problemin zm iin gerekli verileri bellek hcrelerine yklerken donanmdaki sraya baml kalnmaktadr Bu tasarm aamasn zorlatrmaktadr.

PROBLEM (devam)

Kullanc donanmla alakal birok detay bilmek zorundadr. Kullanc bu detay ierisinde boulacak Sonuca yaknsamak karmak bir hal alacaktr

ZM

Problemin yapsna uygun soyut veri yaplarn dzenlemek ve Bu soyut yaplar bilgisayar donanmnda somut olarak gerekletirmenin yollarn aratrmak

Gri tonlardan oluan bir grnty bilgisayar ortamnda ilemek ve saklamak iin herbir gri tonu tamsaylarla gsterdikten sonra, iki boyutlu bir matris olutururuz. Bu matristeki herbir eleman grntdeki bir noktaya ait rengin saysal deerini gsterir. Bu iki boyutlu veriyi bilgisayar belleine kaydetmek ve ilemek iin veri yaps oluturmak gerekir.

rnek(devam)

Bu veri yaplar programlamay verimli ve kolay hale getirir ve Bilgisayar belleini amaca uygun kullanmay salar nemli olan bilgisayarn i ileyiinden ok, problemin nasl zleceidir.

HEDEF

Program tasarlanrken makinenin i organizasyonuna gre deil, probleme cevap veren soyut yapya gre dnlmelidir ve Bu soyut yap bilgisayar bellei ierisinde gereklenmelidir. Bu soyut dzenlemeleri gerekleyen aralar veri yaplardr. Bilginin anlaml srada bir saklama biriminde tutulma biimine VER YAPISI denir.

Baz Veri Yaplar


Balantl Liste, Aa, Kuyruk Yt, Graflar

DERSN AMACI

Bu dersin amac, program gelitirmenin temel aralar olan veri yaplar ve algoritmalarn etkin kullanmn salamak zere bu konularda genel bilgileri sunmaktr. Dersin algoritmalar ksmnn ierii zetle u konular iermektedir: Algoritma sreci, genel program gelitirme aralar, zyineleme kavram, Altprogramlama, Srlama algoritmalar ve arama algoritmalar, algortimalarn etkinlikleri ve karmaklklar. Yapsal zellikleri ve gl olanaklar ile her programcnn mutlaka bilmesi gereken bir dil olan C/C++ programlama dilinin temel zellikleri algoritma kavram ile ilikili olarak ortaya konulacaktr. Ayrca eitli konularda algoritma rnekleri verilecektir. Veri yaplar ksmnda ise: Diziler, Yt ve uygulamalar, Kuyruk veri yaps ve uygulamalar, bal liste veri yaps ve uygulamalar, aalar ve ikili aa uygulamalar, graf ve uygulamalar konular incelenecektir

FAYDALANILABLECEK KAYNAK KTAPLAR

Rifat lkesen, Veri Yaplar ve Algoritmalar , Papatya Yaynclk, 2004, stanbul Sefer Kurnaz, Veri Yaplar ve Algoritma Temelleri, Papatya Yaynclk, 2004, stanbul. brahim Akman, C ile veri Yaplar, SAS, 2006, Ankara.

FAYDALANILABLECEK KAYNAK KTAPLAR

Fato Tnay Yarman, Yusuf Murat Erten, Bilgisayar Sistemleri, Akademi Kitabevi TBV ortak yayn.Sekin Yaynclk, 2006, Ankara. mer Akgbek, C programlama ve programclk sanat, Beta yaynlar, 2001. Fahri Vatansever, Algoritma Gelitirme ve Programlamaya Giri, Sekin Yaynclk, 2002, Ankara.

FAYDALANILABLECEK KAYNAK KTAPLAR


M.mit Karaka, Bilgisayar yazlmnda veri yaplar ve Algoritmalar, Beta yaynlar, 2000. Vasif V. Nabiyev, Teoriden Uygulamalara Algoritmalar, Sekin Yaynclk, 2007, Ankara.

You might also like