Мазмуну:
- Жабдуулар
- 1 -кадам: Негизги ыкмаңызды орнотуңуз
- 2 -кадам: Рекурсивдүү методдун башын түзүңүз
- 3 -кадам: Kicker/base Case түзүңүз
- 4 -кадам: Рекурсивдүү кадам
- 5 -кадам: Маселени кыскартыңыз
- 6 -кадам: Бүтүн сандардын массивин түзүңүз
- 7 -кадам: Сиздин массивдериңиз менен ыкманы чакырыңыз
- 8 -кадам: Жыйынтыктарды басып чыгаруу
- 9 -кадам: Куттуктайбыз
Video: Javaдагы массивди рекурсивдүү түрдө жыйынтыктоо: 9 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Рекурсия - бул өтө пайдалуу жана убакытты үнөмдөөчү жол -жобо, ал өтө аз код менен маселени тез чече алат. Рекурсия сиз жараткан ыкманы камтыйт, ал өзү баштапкы көйгөйдү кыскартат.
Бул мисал үчүн, биз 10 бүтүн сандан турган массивди чогултабыз, бирок өлчөмү каалаган узундукта болушу мүмкүн.
Жабдуулар
Сиз Javaнын негизги синтаксисин билишиңиз керек жана бул тапшырма үчүн кодуңузду жазуу үчүн IDE же текст редакторуңуз болушу керек.
1 -кадам: Негизги ыкмаңызды орнотуңуз
Баштоо үчүн, негизги ыкмаңызды жаңы түзүлгөн класска орнотуңуз. Мен классыма RecursiveSum деп ат койдум. Бул жерде сиз бүтүн сандардын массивин түзөсүз жана рекурсивдүү ыкмаңызды чакырасыз.
2 -кадам: Рекурсивдүү методдун башын түзүңүз
Негизги ыкмаңыздан тышкары, рекурсивдүү ыкма үчүн методдун башын түзүңүз.
Метод статикалык, анткени аны колдонуу үчүн объект талап кылынбайт.
Кайтаруу түрү int, анткени биз колдоно турган массив бүтүндөй сандарга толот. Бирок, бул массивди камтыган каалаган сан түрүнө өзгөртүлүшү мүмкүн.
Мен методумду recursiveSum деп атадым, ал эки параметрди алат; бүтүн сандардын массиви жана биз кошо турган индекс. Мен бул параметрлердин номерлерин жана индекстерин чакырдым.
Сиз азыр каталарды көрөсүз жана бул жакшы. Алар кийинчерээк оңдолот.
3 -кадам: Kicker/base Case түзүңүз
Рекурсивдүү ыкма баштоочу/базалык ишти талап кылат. Бул сиздин ыкмаңыздын чексиз өзүн чакыруусун токтото турган шарт. Бул базалык ишти биз кездештире турган эң жөнөкөй окуя деп ойлоого болот. Бул учурда, базалык жагдай биздин массивдин аягында болгондо болот. Эгерде учурдагы индекс массивдин узундугуна барабар болсо (минус 1, анткени массивдер 1ден эмес, 0дөн башталат), биз аягындабыз жана биз жөн гана ошол индексте ошол элементти кайтарабыз.
4 -кадам: Рекурсивдүү кадам
Бизде негизги иш болгондон кийин, кийинки кадам - бул биздин рекурсивдүү кадам. Бул жерде сыйкырчылык болот. Биз индексибиз массивибиздеги акыркы элементке барабар болгон ишти карадык. Эгерде биз массивибиздин акыркы элементинде болбосочу? Эгер биз ага учурдагы элементибизди кошуу үчүн айта алсакчы? Акыр -аягы, биз массивибиздин аягына жетебиз жана биздин базалык жагдай таасир этет.
Муну ишке ашыруу үчүн, биз учурдагы индексибизди кайтарып, массивдин "калганын кошобуз".
5 -кадам: Маселени кыскартыңыз
Кантип биз "калганын кошобуз"? Бизде белгилүү бир элементти кошо турган ыкма бар; биздин recursiveSum () ыкмасы! Биз аны кайра чакырып, бирок кайсы индексти чогултуп жатканыбызды өзгөртө алабыз.
Биз иштеп жаткан массивде өткөрөбүз, бирок биз учурдагы индекстен кийинки индексти өткөрүп беребиз. Биз муну жөн эле көрсөтүлгөн учурдагы индексибизге кошуу менен жасайбыз.
6 -кадам: Бүтүн сандардын массивин түзүңүз
Эми биздин рекурсивдүү суммалоо ыкмасы бүткөндөн кийин, биз иштете турган массивди түзө алабыз. Бул массив биздин негизги методдук блогубузда болот.
Сиз каалаганча массивдин өлчөмүн жасай аласыз. Мен анын бир эле өлчөмдө эмес, иштээрин көрсөтүү үчүн ар кандай өлчөмдөгү жана чоңдуктагы бир нече массивдерди түздүм.
7 -кадам: Сиздин массивдериңиз менен ыкманы чакырыңыз
Эми сиз рекурсивдүү ыкмаңызды чакырып, бул массивдерди ага өткөрө аласыз. Эми сиз программаңызды иштете аласыз.
8 -кадам: Жыйынтыктарды басып чыгаруу
Эч нерсе болгон жок. Неге? Рекурсивдүү сумма бүтүн санды кайтарат, бирок биз бул бүтүн сан менен эч нерсе кылган жокпуз. Бул өз милдетин аткарды, бирок натыйжасын көрө албай жатабыз. Жыйынтыгын көрүү үчүн, биз аны жөн эле басып чыгарабыз. Муну иштеткенден кийин, сиз ар бир массивдин жыйынтыгын көрүшүңүз керек.
9 -кадам: Куттуктайбыз
Сиз рекурсивдүү функцияны аткардыңыз. Массивдериңиздин өлчөмүн өзгөртө аласыз. Эгер сиз аны сынап көрсөңүз, анда бош массив болгондо анын бузулганын байкайсыз. Биз муну эсепке алган жокпуз, бирок бул сиздин рекурсивдүү ыкмаңызды жакшыртуунун эң сонун жолу.
Сунушталууда:
Кезексиз түрдө стереоскопиялык берүүнүн дикоптикалык модификатору 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: 6 кадам
Кезексиз түрдө стереоскопиялык берүүнүн дикоптикалык модификатору 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: Бир нече убакыттан бери мен баштапкы AODMoSTтун мураскери менен иштеп келе жатам. Жаңы түзмөк ылдамыраак жана жакшыраак 32-биттик микроконтроллерди жана аналогдук видео алмаштырууну ылдамыраак колдонот. Бул AODMoST 32ге жогорку чечилиштер менен иштөөгө жана жаңы функцияларды ишке ашырууга мүмкүндүк берет
Ноутбукту док станциясына илгенде программаны автоматтык түрдө баштаңыз: 5 кадам
Программаны ноутбукту док станциясына туташтырганда автоматтык түрдө баштоо: Бул көрсөтмө ноутбукту док станциясына туташтырганда программаны же тиркемени иштетүү жөнүндө. Бул мисалда мен Lenovo T480 колдонуп жатам Windows 10
Javaдагы BME280 менен Raspberry Pi колдонгон жеке аба ырайы станциясы: 6 кадам
Javaдагы BME280 менен Raspberry Pi колдонулган жеке аба ырайы станциясы: Жаман аба ырайы дайыма терезеден жаман көрүнөт. Биз ошондой эле жылытуу жана кондиционер системасын жакшыраак көзөмөлгө алууну кааладык. Жеке метеостанцияны куруу - бул
Javaда массивди кайталоо үчүн убактылуу циклди кантип колдонсо болот: 9 кадам
Javaдагы массивди кайталоо үчүн убактылуу циклди кантип колдонуу керек: Бүгүн мен сизге сандардын же сөздөрдүн тизмеси аркылуу кайталоо үчүн колдонула турган While циклин түзүү үчүн Javaны кантип колдонууну көрсөтөм. Бул түшүнүк баштапкы деңгээлдеги программисттер үчүн жана Java циклдеринде жана массивдеринде тез тазалоону каалагандар үчүн
Javaдагы функционалдык интерфейстер менен Lambda сөздөрүн колдонуу: 15 кадам
Javaдагы функционалдык интерфейстер менен Lambda сөздөрүн колдонуу: Javaдагы функционалдык интерфейстер - бул көптөгөн жаңы программисттер колдонбогон абдан пайдалуу курал. Алар иштеп чыгуучуларга кодун абстракциялоого мүмкүндүк берет, ошону менен ал ар кандай көйгөйлөргө колдонулушу мүмкүн. Бул Lambda сөз айкаштары менен өзгөчө пайдалуу