Recursion (Özyineleme)

Slides:



Advertisements
Benzer bir sunumlar
Yinelemeli Algoritma Analizi & Asimptotik Notasyon
Advertisements

Ayrık Yapılar Algoritma Analizi.
P 6. Ünite stack veri tipini anlatmaktadır. p Bu ünitede stack laerin örnek uygulamalarından bahsedilmektedir. p Bu sunumda N-Queens problemini çözmek.
Hüsamettin Ataman – Mimar - Denizli
Programlama-II (Java ile Bilgisayar Programlama)
P p 8. Ünitede yinelemeli programlamanın teknikleri anlatılmaktadır. p p Gördüğünüz gibi, yinelemeli programlama bir problemin içinde problemin küçük parçalarını.
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
Özyinelemeli(Recursive) Algoritma Tasarımı
Recursion (Özyineleme)
Fork and Join Framework
Özyineli Sıralama Algoritmaları
BPR152 ALGORİTMA VE PROGRAMLAMA - II
C# Metot Overloading (Aşırı yükleme)
Ses Kontrol Metodlar ile ilgili son birkaç söz Tekrar: Programlama için başlıca 3 model.
Özyineleme(Recursion)
PROGRAM KONTROL VE DÖNGÜ DEYİMLERİ
Recursion (Özyineleme)
İŞ SIRALAMA VE ÇİZELGELEME DERS 5
PEER SUPPORT TEAM.
FONKSİYONLAR İbrahim Onur Sığırcı.
JAVA’DA DİZİLER Dr.Galip AYDIN.
P Önemli bir konu: önşartlar and hedefşartlar. p Bir metodun neyi netice vereceğinin belirlenmesinin yöntemleridirler. Önşartlar ve Hedefşartlar Java Kullanarak.
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
NOUN CLAUSES (İSİM CÜMLECİKLERİ).
DEVRE TEOREMLERİ.
İşlem Yönetimi (Kilitlenme)
Kampanyanızı optimize edin. Görüntülü Reklam Kampanyası Optimize Edici'yi Kullanma Display Ads Campaign Optimizer. Let Google technology manage your diplay.
Alp Osman Altunsoy. Ankara is located in centre of Turkey Ankara is the capital of Turkey.
Gizli / İsimsiz Raporlama Tanıtımı
Veri Yapıları ve Algoritmalar
BM-305 Mikrodenetleyiciler Güz 2015 (6. Sunu) (Yrd. Doç. Dr. Deniz Dal)
 C H I L D B R I D E S.   Marriages in early ages are seen all over the world.  Marriages under 18 are accepted as «child» marriages.
AVL Trees / Slide 1 Silme * Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. * Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazi.
21/02/2016 A Place In My Heart Nana Mouskouri « Istanbul « (A Different Adaptation)
DÜŞÜN, HAYAL ET Imagine there’s no heaven,it’s easy if you try DÜŞÜN Kİ CENNET DİYE BİRŞEY YOK, BÖYLE DÜŞÜNMEYİ BİR DENE.
Hafta2 Rekürsif Algoritmalar
There was a man who was thinking of building an honourable structure that could last for milleniums and show the king’s power. So, he racked his brain.
Doğrusal Programlama Linear Programming
AVRUPA BİRLİĞİ GUNDTVİG ÖĞRENME ORTAKLIĞI ‘ALTIN ÇOCUKLAR ALTIN EBEVEYNLER’ PROJESİ EUROPEAN UNION GRUNDTVIG LEARN PARTNERSHIP GOLDEN PARENTS FOR GOLDEN.
Nasa programs for students.
Searching Thy Lover, To Be One Looking at the sky.. Behind every cloud and over the wings of the birds.. I always dreamt of you. You were looking for.
THE PROJECT SPORT AND US “Non-OLYMPIC GAMES”. FIVE STONES.
Algoritma ve Programlama
Self-Registration on the Coats Supplier Portal
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
LEFM and EPFM LEFM In LEFM, the crack tip stress and displacement field can be uniquely characterized by K, the stress intensity factor. It is neither.
FONKSİYONLAR Programlamada fonksiyon kullanmanın en önemli sebebi kodların tekrar edilmesini engellemektir. Örneğin; karekök yada üsalma işlemi yapan bir.
German shepherd dog. These dogs are said to be intelligent before they say.
Ac POWER ANALYSIS Part III..
TURKISH 1 (UHF1271) İŞARET ZAMİRLERİ DEMONSTRATIVE PRONOUNS
tomorrow soon next week / year in five minutes/ in two hours later today I'll go to the market tomorrow. Don’t worry. He will be here soon. There.
Religious and national holidays celebrated in foreign countries.
Hüsamettin Ataman – Mimar - Denizli
DÖNGÜLER.
Döngüler ve Shift Register
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
NİŞANTAŞI ÜNİVERSİTESİ
MAKİNA TEORİSİ II GİRİŞ Prof.Dr. Fatih M. Botsalı.
Turkish cuisine is very popular around the world. It has a very wide options for everyone. The variety of the recipes and the ingredients which are grown.
FONKSİYONLAR İbrahim Onur Sığırcı.
NİŞANTAŞI ÜNİVERSİTESİ
Relations between angles and sides.. Examples and meaning Larger angles longer side If two angles in a tringle have unequal measures then the sides opposite.
Bilgisayar Bilimi Fonksiyonlar-2.
Chapter 5 – Balancing of accounts
Imagine that you are a teacher and you are taking your 20 students to England for the summer school.
MTM216 GÖRSEL PROGRAMLAMA
DÜZLEMSEL MEKANİZMALARIN
Examples: In the Figure, the three points and coordinates are given that is obtained with CAD program. If these three points are represented by the curve.
Sunum transkripti:

Recursion (Özyineleme) Dr. Galip AYDIN

Recursion (Özyineleme) nedir? Problemleri daha basit alt problemlere bölerek çözme yöntemi. Alt problemler de kendi içlerinde başka alt problemlere bölünebilir. Alt problemler çözülebilecek kadar küçülünce bölme işlemi durur. Özyinelemeli bir algoritma bir problemi çözmek için problemi iki veya daha fazla alt probleme bölen bir yöntemdir.

Basamak Sayısı Ozyinelemeli Tanim Ornek basamak(n) = 1 -> if (–9 <= n <= 9) 1 + basamak(n/10) -> degilse Ornek basamak(321) = 1 + basamak(321/10) = 1 +basamak(32) = 1 + [1 + basamak(32/10)] = 1 + [1 + basamak(3)] = 1 + [1 + (1)] = 3

Basamak Sayısı int basamakSayisi(int n) { if ((-10 < n) && (n < 10)) return 1 else return 1 + basamakSayisi (n/10); }

Özyineleme f(x) problemini çözmek istiyorsak fakat direkt olarak çözemiyorsak Varsayalım y`nin x`den küçük herhangi bir değeri için f(y)yi çözebiliyoruz f(x)`i çözmek için f(y)`yi kullanırız Bu yöntemin çalışabilmesi için f(x)`in direkt olarak hesaplanabildiği en az bir x değerinin olması gerekir. (e.g. taban durumu)

Bir Sayının kuvvetini hesaplama static int power(int k, int n) { // k`nın n. üssü if (n == 0) return 1; else return k * power(k, n – 1); }

Toplam Hesaplama public int sum(int num) { int result; if (num == 1) { result = 1; } else { result = num + sum(num - 1); } return result;

Faktoriyel 5! = 5*4*3*2*1 4! = 4*3*2*1 3! = 3*2*1 2! = 2*1 1! = 1 int faktoriyel = 1; for ( int sayac = 5; sayac>= 1; sayac-- ) faktoriyel = faktoriyel *sayac;

Özyinelemeli Faktöriyel public int faktoriyel(int N) { if (N == 0) return 1; return N*faktoriyel(N-1); }

Recursive Factorial

public double faktoriyelGoster(int n, int sayac) { double fakt; if (n <= 0) { System.out.println("Taban Duruma ulasti"); fakt = 1; } else { sayac++; System.out.println(sayac + ". program cagiriyor "); fakt = n * faktoriyelGoster(n - 1, sayac); //System.out.println("Faktoriyel = " + fakt); } System.out.println(sayac + ". programdan Cikiyor "); sayac--; return fakt;

Faktoriyel programında ozyinelemeli metodların çağrılması 1. program cagiriyor 2. program cagiriyor 3. program cagiriyor 4. program cagiriyor 5. program cagiriyor Taban Duruma ulasti 5. programdan Cikiyor 4. programdan Cikiyor 3. programdan Cikiyor 2. programdan Cikiyor 1. programdan Cikiyor

Fibonacci Sayıları

Fibonacci Java public int fibonacci(int sayi) { if ( ( sayi == 0 ) || ( sayi == 1 ) return sayi; else return fibonacci( sayi - 1 ) + fibonacci( sayi - 2 ); }

Fibonacci Metodunun Çalışması

Towers of Hanoi (Hanoi Kuleleri) Legend has it that in a temple in the Far East, priests are attempting to move a stack of golden disks from one diamond peg to another. The initial stack has 64 disks threaded onto one peg and arranged from bottom to top by decreasing size. The priests are attempting to move the stack from one peg to another under the constraints that exactly one disk is moved at a time and at no time may a larger disk be placed above a smaller disk. Three pegs are provided, one being used for temporarily holding disks. Supposedly, the world will end when the priests complete their task, so there is little incentive for us to facilitate their efforts.

Towers of Hanoi

Towers of Hanoi Algoritması Move n - 1 disks from peg 1 to peg 2, using peg 3 as a temporary holding area. Move the last disk (the largest) from peg 1 to peg 3. Move the n - 1 disks from peg 2 to peg 3, using peg 1 as a temporary holding area.

//Towers of Hanoi // recusively move disks through towers public void solveTowers( int disks, int sourcePeg, int destinationPeg, int tempPeg ) { // base case -- only one disk to move if ( disks == 1 ) { System.out.println(sourcePeg + " -> " +destinationPeg ); return; } // end if // recursion step -- move disk to tempPeg, then to destinationPeg // move ( disks - 1 ) disks from sourcePeg to tempPeg recursively solveTowers( disks - 1, sourcePeg, tempPeg, destinationPeg ); // move last disk from sourcePeg to destinationPeg // move ( disks - 1 ) disks from tempPeg to destinationPeg solveTowers( disks - 1, tempPeg, destinationPeg, sourcePeg ); } // end method solveTowers

Towers Of Hanoi Çözüm 1 --> 3 1 --> 2 3 --> 2 2 --> 1 2 --> 3