Professional Documents
Culture Documents
ALGORTMA
VER YAPISI
Bir ii gerekletirmek iin gerekli olan ilem bilgileri ve zm yntemleri algoritmalara adm adm nakedilir.
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.
int sum(int[] x) { int sum = 0; n = 0; while (n < x.length) { sum += x[n]; } return sum; }
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.
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
Algoritmann performansn lmek iin Farkl algoritmalarla karlatrmak iin Daha iyisi mmkn m? Olabileceklerin en iyisi mi?
zelliklerinin analizi
Algoritma 1
N giri verisi
1000101010100011111000110001110101 0101010101010010001010101000100000 000000011110101000111010
alma zamanT2(n)
Algoritma 2
Algoritma 1
1000
Giri verisi N
N deerinin 1000den kk olduu durumlarda iki algoritma arasndaki alma zaman ihmal edilebilir byklktedir.
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.
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.
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
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.
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.