Inhoudsopgave:

Recursief een array optellen in Java - Ajarnpa
Recursief een array optellen in Java - Ajarnpa

Video: Recursief een array optellen in Java - Ajarnpa

Video: Recursief een array optellen in Java - Ajarnpa
Video: Find Maximum of an Array using Recursion | Algorithms in JAVA 2024, November
Anonim
Recursief een array optellen in Java
Recursief een array optellen in Java

Recursie is een zeer nuttige en tijdbesparende procedure die een probleem snel kan oplossen met heel weinig code. Recursie houdt in dat de methode die u maakt, zichzelf aanroept en het oorspronkelijke probleem verkort.

Voor dit voorbeeld zullen we een array van 10 gehele getallen optellen, maar de grootte kan elke lengte hebben.

Benodigdheden

U moet de basissyntaxis van Java kennen en uw IDE of een teksteditor hebben om uw code voor deze taak te schrijven.

Stap 1: Stel uw hoofdmethode in

Stel uw hoofdmethode in
Stel uw hoofdmethode in

Stel om te beginnen uw hoofdmethode in een nieuw gemaakte klasse in. Ik heb mijn klasse RecursiveSum genoemd. Hier maakt u de array van gehele getallen en roept u uw recursieve methode aan.

Stap 2: Maak uw recursieve methode-header

Maak uw recursieve methode-header
Maak uw recursieve methode-header

Maak buiten uw hoofdmethode de methodekop voor uw recursieve methode.

De methode is statisch, omdat er geen object voor nodig is om deze te gebruiken.

Het retourtype is int, omdat de array die we zullen gebruiken vol zal zijn op gehele getallen. Dit kan echter worden gewijzigd in het nummertype dat de array bevat.

Ik heb mijn methode recursiveSum genoemd, waarvoor twee parameters nodig zijn; een array van gehele getallen en de index die we aan de som zullen toevoegen. Ik heb deze parameters respectievelijk nummers en index genoemd.

Je zult nu fouten zien en dat is prima. Ze worden later gerepareerd.

Stap 3: Creëer je Kicker/base Case

Creëer je kicker/basecase
Creëer je kicker/basecase

Een recursieve methode heeft een kicker/base case nodig. Dit is de voorwaarde die ervoor zorgt dat uw methode zichzelf niet oneindig aanroept. Dit basisscenario kan worden beschouwd als het meest eenvoudige geval dat we zullen tegenkomen. In dit geval is het basisscenario wanneer we aan het einde van onze array zijn. Als de huidige index gelijk is aan de lengte van de array (min 1 omdat arrays beginnen te tellen vanaf 0 en niet 1), zijn we aan het einde en geven we dat element gewoon terug bij die index.

Stap 4: De recursieve stap

De recursieve stap
De recursieve stap

Zodra we ons basisscenario hebben, is de volgende stap onze recursieve stap. Dit is waar de magie gebeurt. We hebben het geval behandeld waarin onze index gelijk is aan het laatste element in onze array. Wat als we niet bij het laatste element in onze array zijn? Wat als we het eenvoudig konden vertellen om ons huidige element plus het volgende toe te voegen? Uiteindelijk zullen we het einde van onze reeks bereiken en zal ons basisscenario van invloed zijn.

Om dit te bereiken, retourneren we eenvoudig onze huidige index en "voegen de rest toe" van de array.

Stap 5: Verkort het probleem

Verkort het probleem
Verkort het probleem

Hoe kunnen we eenvoudig "de rest toevoegen"? We hebben al een methode die een bepaald element toevoegt; onze recursiveSum() methode! We kunnen het opnieuw noemen, maar veranderen welke index we optellen.

We passeren in dezelfde array die we verwerken, maar we passeren de volgende index van onze huidige index. We doen dit door er eenvoudig een toe te voegen aan onze huidige index, zoals weergegeven.

Stap 6: Maak de matrix van gehele getallen

Maak de matrix van gehele getallen
Maak de matrix van gehele getallen

Nu onze recursieve optelmethode voltooid is, kunnen we onze array maken die we zullen verwerken. Deze array staat in ons hoofdmethodeblok.

U kunt de grootte van de array zo lang maken als u wilt. Ik heb een paar verschillende arrays gemaakt met verschillende grootten en waarden om te laten zien dat het niet alleen op één formaat werkt.

Stap 7: Roep de methode aan met uw arrays

Roep de methode aan met uw arrays
Roep de methode aan met uw arrays

Nu kunt u uw recursieve methode aanroepen en deze arrays eraan doorgeven. Nu kunt u uw programma uitvoeren.

Stap 8: Druk de resultaten af

De resultaten afdrukken
De resultaten afdrukken
De resultaten afdrukken
De resultaten afdrukken

Er is niks gebeurd. Waarom? Recursieve som retourneert een geheel getal, maar we hebben niets met dit geheel getal gedaan. Het deed zijn werk, maar we kunnen het resultaat niet zien. Om het resultaat te zien, printen we het gewoon zo uit. Nadat u dit hebt uitgevoerd, zou u de resultaten voor elk van uw arrays moeten zien.

Stap 9: Gefeliciteerd

Je hebt een recursieve functie voltooid. Voel je vrij om de grootte van je arrays te wijzigen. Als je het uittest, zul je merken dat het crasht als je een lege array hebt. We hebben er geen rekening mee gehouden, maar dat is een geweldige manier om uw recursieve methode te verbeteren.

Aanbevolen: