Мазмуну:

Javaдагы массивди рекурсивдүү түрдө жыйынтыктоо: 9 кадам
Javaдагы массивди рекурсивдүү түрдө жыйынтыктоо: 9 кадам

Video: Javaдагы массивди рекурсивдүү түрдө жыйынтыктоо: 9 кадам

Video: Javaдагы массивди рекурсивдүү түрдө жыйынтыктоо: 9 кадам
Video: Как работает Spring Boot и что такое auto-configuration. Магия? 2024, Ноябрь
Anonim
Javaдагы массивди рекурсивдүү түрдө жыйынтыктоо
Javaдагы массивди рекурсивдүү түрдө жыйынтыктоо

Рекурсия - бул өтө пайдалуу жана убакытты үнөмдөөчү жол -жобо, ал өтө аз код менен маселени тез чече алат. Рекурсия сиз жараткан ыкманы камтыйт, ал өзү баштапкы көйгөйдү кыскартат.

Бул мисал үчүн, биз 10 бүтүн сандан турган массивди чогултабыз, бирок өлчөмү каалаган узундукта болушу мүмкүн.

Жабдуулар

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

1 -кадам: Негизги ыкмаңызды орнотуңуз

Негизги ыкмаңызды орнотуңуз
Негизги ыкмаңызды орнотуңуз

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

2 -кадам: Рекурсивдүү методдун башын түзүңүз

Сиздин рекурсивдүү методдун башын түзүңүз
Сиздин рекурсивдүү методдун башын түзүңүз

Негизги ыкмаңыздан тышкары, рекурсивдүү ыкма үчүн методдун башын түзүңүз.

Метод статикалык, анткени аны колдонуу үчүн объект талап кылынбайт.

Кайтаруу түрү int, анткени биз колдоно турган массив бүтүндөй сандарга толот. Бирок, бул массивди камтыган каалаган сан түрүнө өзгөртүлүшү мүмкүн.

Мен методумду recursiveSum деп атадым, ал эки параметрди алат; бүтүн сандардын массиви жана биз кошо турган индекс. Мен бул параметрлердин номерлерин жана индекстерин чакырдым.

Сиз азыр каталарды көрөсүз жана бул жакшы. Алар кийинчерээк оңдолот.

3 -кадам: Kicker/base Case түзүңүз

Сиздин Kicker/базалык ишиңизди түзүңүз
Сиздин Kicker/базалык ишиңизди түзүңүз

Рекурсивдүү ыкма баштоочу/базалык ишти талап кылат. Бул сиздин ыкмаңыздын чексиз өзүн чакыруусун токтото турган шарт. Бул базалык ишти биз кездештире турган эң жөнөкөй окуя деп ойлоого болот. Бул учурда, базалык жагдай биздин массивдин аягында болгондо болот. Эгерде учурдагы индекс массивдин узундугуна барабар болсо (минус 1, анткени массивдер 1ден эмес, 0дөн башталат), биз аягындабыз жана биз жөн гана ошол индексте ошол элементти кайтарабыз.

4 -кадам: Рекурсивдүү кадам

Рекурсивдүү кадам
Рекурсивдүү кадам

Бизде негизги иш болгондон кийин, кийинки кадам - бул биздин рекурсивдүү кадам. Бул жерде сыйкырчылык болот. Биз индексибиз массивибиздеги акыркы элементке барабар болгон ишти карадык. Эгерде биз массивибиздин акыркы элементинде болбосочу? Эгер биз ага учурдагы элементибизди кошуу үчүн айта алсакчы? Акыр -аягы, биз массивибиздин аягына жетебиз жана биздин базалык жагдай таасир этет.

Муну ишке ашыруу үчүн, биз учурдагы индексибизди кайтарып, массивдин "калганын кошобуз".

5 -кадам: Маселени кыскартыңыз

Проблеманы кыскартуу
Проблеманы кыскартуу

Кантип биз "калганын кошобуз"? Бизде белгилүү бир элементти кошо турган ыкма бар; биздин recursiveSum () ыкмасы! Биз аны кайра чакырып, бирок кайсы индексти чогултуп жатканыбызды өзгөртө алабыз.

Биз иштеп жаткан массивде өткөрөбүз, бирок биз учурдагы индекстен кийинки индексти өткөрүп беребиз. Биз муну жөн эле көрсөтүлгөн учурдагы индексибизге кошуу менен жасайбыз.

6 -кадам: Бүтүн сандардын массивин түзүңүз

Бүтүн сандардын массивин түзүү
Бүтүн сандардын массивин түзүү

Эми биздин рекурсивдүү суммалоо ыкмасы бүткөндөн кийин, биз иштете турган массивди түзө алабыз. Бул массив биздин негизги методдук блогубузда болот.

Сиз каалаганча массивдин өлчөмүн жасай аласыз. Мен анын бир эле өлчөмдө эмес, иштээрин көрсөтүү үчүн ар кандай өлчөмдөгү жана чоңдуктагы бир нече массивдерди түздүм.

7 -кадам: Сиздин массивдериңиз менен ыкманы чакырыңыз

Сиздин массивдериңиз менен ыкманы чакырыңыз
Сиздин массивдериңиз менен ыкманы чакырыңыз

Эми сиз рекурсивдүү ыкмаңызды чакырып, бул массивдерди ага өткөрө аласыз. Эми сиз программаңызды иштете аласыз.

8 -кадам: Жыйынтыктарды басып чыгаруу

Жыйынтыктарды басып чыгаруу
Жыйынтыктарды басып чыгаруу
Жыйынтыктарды басып чыгаруу
Жыйынтыктарды басып чыгаруу

Эч нерсе болгон жок. Неге? Рекурсивдүү сумма бүтүн санды кайтарат, бирок биз бул бүтүн сан менен эч нерсе кылган жокпуз. Бул өз милдетин аткарды, бирок натыйжасын көрө албай жатабыз. Жыйынтыгын көрүү үчүн, биз аны жөн эле басып чыгарабыз. Муну иштеткенден кийин, сиз ар бир массивдин жыйынтыгын көрүшүңүз керек.

9 -кадам: Куттуктайбыз

Сиз рекурсивдүү функцияны аткардыңыз. Массивдериңиздин өлчөмүн өзгөртө аласыз. Эгер сиз аны сынап көрсөңүз, анда бош массив болгондо анын бузулганын байкайсыз. Биз муну эсепке алган жокпуз, бирок бул сиздин рекурсивдүү ыкмаңызды жакшыртуунун эң сонун жолу.

Сунушталууда: