الفكرة الأساسية لتصميم الخوارزمية العودية هي:
لمشكلة معقدة ، تحلل المشكلة الأصلية إلى العديد من المشكلات الفرعية البسيطة نسبيًا ، وتستمر حتى تصبح المشكلات الفرعية بسيطة للغاية بحيث يمكن حلها مباشرة ، أي أنها مخرج من التكرار ، بحيث يمكن حل المشكلة الأصلية بشكل متكرر.
عند القيام بالخوارزميات المتكررة ، يجب أن تفهم المخرج ، أي ، يجب أن يكون لديك حالة نهاية متكررة واضحة عند القيام بالخوارزميات العودية. هذا مهم جدا. في الواقع ، من السهل جدًا فهم هذا المخرج. إنه مجرد حالة. عندما يتم استيفاء هذا الشرط ، لم نعد نتكرر.
مفتاح الفهم هو:
(1) الخروج العودية
(2) يقترب الضغط الأرضي تدريجياً من الخروج
العودية هي سلوك الطريقة نفسها التي تسمي نفسها. كن حذرًا في كتابة رأس العودية ، أي متى يجب الخروج من العودية.
تجنب دورة مفرغة.
مثال 1 ، طباعة 1 ~ 100 بواسطة متكرر
package com.lanhuigu.base ؛ public class corsiontest {private static int i = 0 ؛/** * print بشكل متكرر 1 إلى 100 */testcursion void static public {i ++ ؛ system.out.println (i) ؛ testCursion01 () ؛ // callback: call نفسه} آخر {system.out.println ("اللعبة أكثر من!") ؛}}مثال 2: احسب بشكل متكرر عامل عدد معين
package com.lanhuigu.base ؛ فئة عامة corsiontest {/***احسب بشكل متكرر عامل رقم معين*/ثابت int int testfactorial (int n) {if (n == 1) {return 1 ؛} آخر {return n*testFactorial (n-1) ؛}} {system.out.println (TestFactorial (5)) ؛ // حساب Factorial of 5}}فيما يتعلق بتقلبات الحساب العودية ، مخطط هيكل تحليل الذاكرة العودية:
قم أولاً بتعيين الخط الطويل ، وأغلق الخط أخيرًا ، ثم اسحب الأسماك إلى الشاطئ.
لخص
ما سبق يدور حول تحليل مثال خوارزمية Java العودية في هذه المقالة ، آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!