Turinys:

Rekursyviai masyvo apibendrinimas „Java“: 9 žingsniai
Rekursyviai masyvo apibendrinimas „Java“: 9 žingsniai

Video: Rekursyviai masyvo apibendrinimas „Java“: 9 žingsniai

Video: Rekursyviai masyvo apibendrinimas „Java“: 9 žingsniai
Video: Review: Quiz 0 2024, Lapkritis
Anonim
Rekursyviai apibendrinant masyvą „Java“
Rekursyviai apibendrinant masyvą „Java“

Rekursija yra labai naudinga ir daug laiko reikalaujanti procedūra, kuri gali greitai išspręsti problemą su labai mažu kodu. Rekursija apima metodą, kurį sukuriate pats, sutrumpindamas pradinę problemą.

Šiame pavyzdyje mes apibendrinsime 10 sveikųjų skaičių masyvą, tačiau dydis gali būti bet kokio ilgio.

Prekės

Turėtumėte žinoti pagrindinę „Java“sintaksę ir turėti IDE arba teksto rengyklę, kad parašytumėte šios užduoties kodą.

1 veiksmas: nustatykite pagrindinį metodą

Nustatykite pagrindinį metodą
Nustatykite pagrindinį metodą

Norėdami pradėti, nustatykite pagrindinį metodą naujai sukurtoje klasėje. Savo klasę pavadinau RecursiveSum. Čia sukursite sveikųjų skaičių masyvą ir iškviesite rekursinį metodą.

2 veiksmas: sukurkite rekursinio metodo antraštę

Sukurkite savo rekursinio metodo antraštę
Sukurkite savo rekursinio metodo antraštę

Už pagrindinio metodo ribų sukurkite rekursinio metodo metodo antraštę.

Metodas yra statinis, nes jam nereikės naudoti objekto.

Grąžinimo tipas yra int, nes mūsų naudojamas masyvas bus pilnas sveikųjų skaičių. Tačiau tai galima pakeisti į bet kokį masyvo skaičių tipą.

Aš pavadinau savo metodą recursiveSum, kuris turės du parametrus; sveikųjų skaičių masyvas ir indeksas, kurį pridėsime prie sumos. Aš pavadinau šiuos parametrus atitinkamai skaičiais ir indeksu.

Dabar pamatysite klaidas ir tai gerai. Vėliau jie bus pataisyti.

3 veiksmas: sukurkite „Kicker“/pagrindinį dėklą

Sukurkite savo „Kicker“/bazinį dėklą
Sukurkite savo „Kicker“/bazinį dėklą

Rekursiniam metodui reikia spardytojo/bazinio atvejo. Tai yra sąlyga, kuri sustabdys jūsų metodą be galo save vadinti. Šį pagrindinį atvejį galima laikyti paprasčiausiu atveju, su kuriuo susidursime. Šiuo atveju pagrindinis atvejis bus tada, kai būsime masyvo pabaigoje. Jei dabartinis indeksas yra lygus masyvo ilgiui (minus 1, nes masyvai pradeda skaičiuoti nuo 0, o ne 1), mes esame pabaigoje ir mes tiesiog grąžiname tą elementą tuo indeksu.

4 žingsnis: pasikartojantis žingsnis

Rekursinis žingsnis
Rekursinis žingsnis

Kai turėsime pagrindinį atvejį, kitas žingsnis yra rekursinis žingsnis. Čia ir įvyksta magija. Mes išnagrinėjome atvejį, kai mūsų indeksas yra paskutinis mūsų masyvo elementas. Ką daryti, jei nesame paskutinis mūsų masyvo elementas? O kas, jei galėtume tiesiog pasakyti, kad pridėtų esamą elementą ir kitą? Galų gale mes pasieksime savo masyvo pabaigą ir mūsų pagrindinis atvejis turės įtakos.

Norėdami tai padaryti, mes tiesiog grąžiname dabartinį indeksą ir „pridedame likusią“masyvą.

5 žingsnis: sutrumpinkite problemą

Sutrumpinkite problemą
Sutrumpinkite problemą

Kaip mes tiesiog „pridedame likusius“? Mes jau turime metodą, kuris pridės tam tikrą elementą; mūsų rekursyvusSum () metodas! Galime tai vadinti dar kartą, bet pakeiskite indeksą, kurį apibendriname.

Mes perduodame tą patį masyvą, kurį mes apdorojame, bet perduodame kitą indeksą iš dabartinio indekso. Mes tai darome tiesiog pridėdami vieną prie dabartinio indekso, kaip parodyta.

6 žingsnis: sukurkite sveikųjų skaičių masyvą

Sukurkite sveikųjų skaičių masyvą
Sukurkite sveikųjų skaičių masyvą

Dabar, kai mūsų rekursinis sumavimo metodas baigtas, galime sukurti savo masyvą, kurį apdorosime. Šis masyvas bus mūsų pagrindiniame metodo bloke.

Masyvo dydį galite padaryti tiek, kiek norite. Aš sukūriau keletą skirtingų masyvų su skirtingais dydžiais ir vertėmis, kad parodyčiau, jog jis veikia ne tik vienam dydžiui.

7 žingsnis: paskambinkite metodui savo masyvais

Skambinkite metodu savo masyvais
Skambinkite metodu savo masyvais

Dabar galite paskambinti savo rekursiniu metodu ir perduoti jam šiuos masyvus. Dabar galite paleisti savo programą.

8 veiksmas: spausdinkite rezultatus

Spausdinkite rezultatus
Spausdinkite rezultatus
Spausdinkite rezultatus
Spausdinkite rezultatus

Nieko neatsitiko. Kodėl? Rekursinė suma grąžina sveiką skaičių, bet mes nieko nepadarėme su šiuo sveiku skaičiumi. Jis atliko savo darbą, bet nematome rezultato. Norėdami pamatyti rezultatą, mes tiesiog jį atspausdiname. Atlikę tai, turėtumėte pamatyti kiekvieno masyvo rezultatus.

9 žingsnis: Sveikiname

Baigėte rekursinę funkciją. Nesivaržykite keisti savo masyvų dydžio. Jei išbandysite, pastebėsite, kad sugenda, kai turite tuščią masyvą. Mes to neatsakėme, bet tai puikus būdas patobulinti rekursinį metodą.

Rekomenduojamas: