Мазмұны:

Java -де жиымды рекурсивті түрде қорытындылау: 9 қадам
Java -де жиымды рекурсивті түрде қорытындылау: 9 қадам

Бейне: Java -де жиымды рекурсивті түрде қорытындылау: 9 қадам

Бейне: Java -де жиымды рекурсивті түрде қорытындылау: 9 қадам
Бейне: Recursia 5 есеп. Fact(N)» рекурсивті функция/әдісін сипаттау.(Java, C++, C#) 2024, Қараша
Anonim
Java -де массивті рекурсивті түрде қорытындылау
Java -де массивті рекурсивті түрде қорытындылау

Рекурсия - өте аз коды бар мәселені тез шеше алатын өте пайдалы және уақытты үнемдейтін процедура. Рекурсия бастапқы мәселені қысқартатын өзіңізді шақыратын әдісті қамтиды.

Бұл мысал үшін біз 10 бүтін сандардың жиынтығын шығарамыз, бірақ өлшемі кез келген ұзындықта болуы мүмкін.

Жабдықтар

Сіз java негізгі синтаксисін білуіңіз керек және сіздің IDE немесе осы тапсырмаға кодты жазу үшін мәтіндік редактор болуы керек.

1 -қадам: Негізгі әдісті орнатыңыз

Негізгі әдісті орнатыңыз
Негізгі әдісті орнатыңыз

Бастау үшін негізгі әдісті жаңадан құрылған сыныпқа орнатыңыз. Мен өз сыныбымды RecursiveSum деп атадым. Мұнда сіз бүтін сандар жиынын жасайсыз және рекурсивті әдісті шақырасыз.

2 -қадам: Рекурсивті әдіс тақырыбын жасаңыз

Рекурсивті әдіс тақырыбын жасаңыз
Рекурсивті әдіс тақырыбын жасаңыз

Негізгі әдісіңізден басқа, рекурсивті әдіс үшін әдіс тақырыбын жасаңыз.

Әдіс статикалық, себебі оны пайдалану үшін объект қажет емес.

Қайтару түрі - int, өйткені біз қолданатын массив бүтін сандарға толы болады. Дегенмен, оны массивтің кез келген санына өзгертуге болады.

Мен екі параметрді алатын recursiveSum әдісімді атадым; бүтін сандар жиыны және біз қосатын индекс. Мен бұл параметрлерді сәйкесінше сандар мен индекстер деп атадым.

Сіз дәл қазір қателерді көресіз және бұл жақсы. Олар кейінірек түзетіледі.

3 -қадам: Кикер/базалық қап жасаңыз

Kicker/base case жасаңыз
Kicker/base case жасаңыз

Рекурсивті әдіске тепкіш/базалық корпус қажет. Бұл сіздің әдісіңізді шексіз шақыруды тоқтататын шарт. Бұл негізгі жағдайды біз кездестіретін ең қарапайым жағдай деп санауға болады. Бұл жағдайда базалық жағдай біздің массивтің соңында болған кезде болады. Егер ағымдағы индекс массивтің ұзындығына тең болса (минус 1, себебі массивтер санауды 0 -ден емес, 1 -ден бастайды), біз соңындамыз және біз сол элементті сол индексте қайтарамыз.

4 -қадам: Рекурсивті қадам

Рекурсивті қадам
Рекурсивті қадам

Бізде негізгі жағдай болғаннан кейін, келесі қадам - біздің рекурсивті қадам. Бұл жерде сиқыр пайда болады. Біз индекс массивіміздегі соңғы элементке тең болған жағдайды қарастырдық. Егер біз массивтің соңғы элементінде болмасақ ше? Егер біз оған ағымдағы элемент пен келесі элементті қосуды айтсақ ше? Ақыр соңында біз массивтің соңына жетеміз және біздің негізгі жағдайымыз әсер етеді.

Мұны істеу үшін біз ағымдағы индексті қайтарамыз және массивтің қалған бөлігін қосамыз.

5 -қадам: Мәселені қысқарту

Мәселені қысқарту
Мәселені қысқарту

Біз қалай «қалғанын қосамыз»? Бізде белгілі бір элементті қосатын әдіс бар; біздің recursiveSum () әдісі! Біз оны қайта шақыра аламыз, бірақ қай индексті жинақтайтынымызды өзгерте аламыз.

Біз өңдейтін массивке береміз, бірақ біз ағымдағы индексімізден келесі индексті өткіземіз. Біз мұны ағымдағы индекске көрсетілгендей қосу арқылы жасаймыз.

6 -қадам: Бүтін сандар жиынын құрыңыз

Бүтін сандар жиынын құрыңыз
Бүтін сандар жиынын құрыңыз

Енді біздің рекурсивті қорытындылау әдісі аяқталғаннан кейін, біз өңдейтін массивімізді жасай аламыз. Бұл массив біздің негізгі әдіс блогында болады.

Сіз массивтің өлшемін қалағаныңызша жасай аласыз. Мен оның бір өлшемде ғана емес жұмыс істейтінін көрсету үшін әр түрлі өлшемдері мен мәндері бар бірнеше түрлі массивтер жасадым.

7 -қадам: Әдісті массивтермен шақырыңыз

Әдісті массивтермен шақырыңыз
Әдісті массивтермен шақырыңыз

Енді сіз рекурсивті әдіске қоңырау шалып, оған осы массивтерді бере аласыз. Енді сіз бағдарламаны іске қоса аласыз.

8 -қадам: Нәтижелерді басып шығарыңыз

Нәтижелерді басып шығарыңыз
Нәтижелерді басып шығарыңыз
Нәтижелерді басып шығарыңыз
Нәтижелерді басып шығарыңыз

Ештеңе болған жоқ. Неге? Рекурсивті сома бүтін санды қайтарады, бірақ біз бұл бүтін санмен ештеңе істемедік. Ол өз жұмысын жасады, бірақ нәтижесін көре алмаймыз. Нәтижені көру үшін біз оны дәл осылай басып шығарамыз. Бұл іске қосылғаннан кейін сіз әр массивтің нәтижелерін көресіз.

9 -қадам: Құттықтаймыз

Сіз рекурсивті функцияны орындадыңыз. Өзіңіздің массивтеріңіздің өлшемін өзгерте аласыз. Егер сіз оны тексерсеңіз, сізде бос массив болған кезде оның бұзылғанын байқайсыз. Біз бұл туралы есеп бермедік, бірақ бұл сіздің рекурсивті әдісті жақсартудың тамаша тәсілі.

Ұсынылған: