Özyineli Fonksiyonlar (Recursive Functions)
Yazan: Şadi Evren ŞEKER
Fonksiyonlar tekrarlama yapılarına göre temel olarak iki türlü düşünülebilir. Buna göre bir fonksiyonun içinde yine kendisinden bir parça bulunuyorsa bu fonksiyonlara özyineli (recursive) fonksiyon denilirken, fonksiyonun kendisini tekrar etmemesi durumunda döngülü (iterative) fonksiyon ismi verilir.
Teorik olarak bütün döngülü (iterative) fonksiyonlar özyineli (recursive) fonksiyon olarak yazılabilir (tersi de doğrudur).
Öreğin 1′den verilen sayıya kadar olan sayıları toplayan bir fonksiyonu hem özyineli hem de döngülü olarak yazalım:
//özyineli olarak:
int topla(int a){
if(a==1)
return 1;
return a+ topla(a-1);
}
//döngülü olarak
int topla(int a){
int toplam= 0;
for(int i = 0 ;i
toplam= toplam+a;
}
return toplam;
}
Dikkat edilirse ilk foksiyonun içerisinde kendisini çağıran bir satır bulunmaktayken ikinci fonksiyonda çözüm bir döngü yardımı ile (for döngüsü) yapılmıştır.
« Körilemek (Currying) | Fibonacci Sayıları (Fibonacci Numbers) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Özyineli Fonksiyonlar (Recursive Functions)' isimli yazı 05 Aug 2008 tarihinde, saat: 10:14 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 789 defa okunmuştur.
Benzer yazıları C/C++, JAVA, Programlama Dilleri, algoritma analizi (teory of algorithms) kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Özyineli Diller (Recursive Languages)
- Özyineli Geçiş Ağları (Reursive Transition Networks)
- Gellish (Kontrollü Doğal Dil)
- Karar Problemi (Decision Problem)
- Masfuf (Matris , Matrix)
- Turing Makinesi (Turing Machine)
- Özyineli Sayılabilir Diller (Recursively Enumerable Languages)
- Chomsky Hiyerarşisi ( Chomsky Hierarchy )
- Anlamsal Ağlar (Semantic Network)
- Mana Ağları (Sematic Webs, Anlamsal Ağ)
Yapılan Son Yorumlar
- vildan: teşekkürler..
- Şadi Evren ŞEKER: Elbette; farklı iki örnek daha...
- rasim: daha baska ornekler verebılırmısınız
- Zeynep Kaya: İyi günler.Benim size bi sorum daha...
- Zeynep Kaya: Cok tesekkür ederim yardımınız icin..
Yakın Yazılar
Özyineli Fonksiyonlar (Recursive Functions)
Fibonacci Sayıları (Fibonacci Numbers)
Özyineli Diller (Recursive Languages)
Veri yapıları üzerinde fonksiyonlar
Buket Sıralaması (Bucket Sort)
Özyineli sayılabilir küme (Recursively Enumerable Sets)
Fibonacci Arama Algoritması (Fibonacci Search Algorithm)
Karar Problemi (Decision Problem)
Kuyruk Özyinelemesi (Tail Recursion, Birikimsel Tarz, Accumulation Style)
Hızlı Sıralama Algoritması (Quick Sort Algorithm)
Özyineli Geçiş Ağları (Reursive Transition Networks)
Dinamik Programlama (Dynamic programming)
Biriktirme Tipi Fonksiyonlar ( Accumulator Type Functions)
SQL ( Structured Query Language, Yapısal Sorgulama Dili)
Filitreleme Tipi Fonksiyonlar (Filter Type Functions)
Bağlantılar
[...] bilimlerinde çok sık kullanılan sayı serileridir. Bu sayıların önemi özyineli (recursive) fonksiyonlar ile kolayca yazılabilmesidir. Fibonacci serisinin ilk iki sayısı 1′dir. [...]
[...] : Şadi Evren ŞEKER Bu arama algoritması, özyineli (recursive) bir seri olan fibonacci sayılarını kullanarak sıralı bir dizi üzerinde arama yapmaktadır. [...]
[...] üzere yukarıdaki kod özyineli (recursive) bir koddur ve kendi içerisinde orta değeri bulmak için partition adı verile harici bir [...]