Სარჩევი:

მასივის რეკურსიული შეჯამება ჯავაში: 9 ნაბიჯი
მასივის რეკურსიული შეჯამება ჯავაში: 9 ნაბიჯი

ვიდეო: მასივის რეკურსიული შეჯამება ჯავაში: 9 ნაბიჯი

ვიდეო: მასივის რეკურსიული შეჯამება ჯავაში: 9 ნაბიჯი
ვიდეო: CS50 2013 - Week 9 2024, ნოემბერი
Anonim
მასივის რეკურსიული შეჯამება ჯავაში
მასივის რეკურსიული შეჯამება ჯავაში

რეკურსია არის ძალიან სასარგებლო და დროის ეფექტური პროცედურა, რომელსაც შეუძლია სწრაფად გადაჭრას პრობლემა ძალიან მცირე კოდით. რეკურსია მოიცავს მეთოდს, რომელსაც თქვენ ქმნით და თავისთავად ამცირებს თავდაპირველ პრობლემას.

ამ მაგალითისთვის ჩვენ შევაჯამებთ 10 მთელი რიცხვის მასივს, მაგრამ ზომა შეიძლება იყოს ნებისმიერი სიგრძის.

მარაგები

თქვენ უნდა იცოდეთ java- ს ძირითადი სინტაქსი და გქონდეთ თქვენი IDE ან ტექსტური რედაქტორი, რომ დაწეროთ თქვენი კოდი ამ ამოცანისთვის.

ნაბიჯი 1: შექმენით თქვენი ძირითადი მეთოდი

შექმენით თქვენი ძირითადი მეთოდი
შექმენით თქვენი ძირითადი მეთოდი

დასაწყისისთვის, შექმენით თქვენი ძირითადი მეთოდი ახლად შექმნილ კლასში. მე ჩემს კლასს დავარქვი RecursiveSum. ეს არის სადაც თქვენ შექმნით მთელი რიცხვის მასივს და დაარქმევთ თქვენს რეკურსიულ მეთოდს.

ნაბიჯი 2: შექმენით თქვენი რეკურსიული მეთოდის სათაური

შექმენით თქვენი რეკურსიული მეთოდის სათაური
შექმენით თქვენი რეკურსიული მეთოდის სათაური

თქვენი ძირითადი მეთოდის მიღმა, შექმენით მეთოდის სათაური თქვენი რეკურსიული მეთოდისთვის.

მეთოდი სტატიკურია, რადგან მას არ დასჭირდება ობიექტის გამოყენება.

დაბრუნების ტიპი არის int, რადგან მასივი რომელსაც ჩვენ ვიყენებთ სავსე იქნება მთელ რიცხვებზე. თუმცა, ეს შეიძლება შეიცვალოს რა რაოდენობის ტიპის მასივი შეიცავს.

მე დავასახელე ჩემი მეთოდი recursiveSum, რომელიც მიიღებს ორ პარამეტრს; მთელი რიცხვების მასივი და ინდექსი, რომელსაც ჩვენ დავუმატებთ ჯამს. მე დავურეკე ამ პარამეტრებს ნომრები და ინდექსი შესაბამისად.

თქვენ ნახავთ შეცდომებს ახლა და ეს კარგია. ისინი მოგვიანებით გამოსწორდება.

ნაბიჯი 3: შექმენით თქვენი დამრტყმელი/ძირითადი საქმე

შექმენით თქვენი Kicker/base Case
შექმენით თქვენი Kicker/base Case

რეკურსიულ მეთოდს სჭირდება დამრტყმელი/საბაზისო შემთხვევა. ეს ის პირობაა, რომელიც ხელს შეუშლის თქვენს მეთოდს უსასრულოდ დაუძახოს საკუთარ თავს. ეს ძირითადი შემთხვევა შეიძლება ჩაითვალოს, როგორც ყველაზე მარტივი შემთხვევა, რომელსაც ჩვენ წავაწყდებით. ამ შემთხვევაში, ძირითადი შემთხვევა იქნება, როდესაც ჩვენ მასივის ბოლოს ვართ. თუ ამჟამინდელი ინდექსი უდრის მასივის სიგრძეს (მინუს 1, რადგან მასივები იწყებს დათვლას 0 – დან და არა 1 – დან), ჩვენ ვართ ბოლოს და ჩვენ უბრალოდ ვუბრუნებთ ამ ელემენტს ამ ინდექსში.

ნაბიჯი 4: რეკურსიული ნაბიჯი

რეკურსიული ნაბიჯი
რეკურსიული ნაბიჯი

მას შემდეგ რაც ჩვენ გვაქვს ჩვენი ძირითადი შემთხვევა, შემდეგი ნაბიჯი არის ჩვენი რეკურსიული ნაბიჯი. სწორედ აქ ხდება მაგია. ჩვენ განვიხილეთ შემთხვევა, როდესაც ჩვენი ინდექსი უდრის მასივის ბოლო ელემენტს. რა მოხდება, თუ ჩვენი მასივის ბოლო ელემენტში არ ვართ? რა მოხდება, თუ ჩვენ შეგვიძლია გითხრათ, რომ დაამატოთ ჩვენი ამჟამინდელი ელემენტი პლუს შემდეგი? საბოლოოდ ჩვენ მივაღწევთ ბოლოს ჩვენი მასივი და ჩვენი ძირითადი შემთხვევაში იმოქმედებს.

ამის მისაღწევად, ჩვენ უბრალოდ ვუბრუნებთ ჩვენს ამჟამინდელ ინდექსს და "ვამატებთ დანარჩენს" მასივს.

ნაბიჯი 5: შეამცირეთ პრობლემა

შეამცირეთ პრობლემა
შეამცირეთ პრობლემა

როგორ შეგვიძლია უბრალოდ "დავამატოთ დანარჩენი"? ჩვენ უკვე გვაქვს მეთოდი, რომელიც დაამატებს გარკვეულ ელემენტს; ჩვენი რეკურსიული Sum () მეთოდი! ჩვენ შეგვიძლია მას კვლავ ვუწოდოთ, მაგრამ შევცვალოთ ის ინდექსი, რომელსაც ვაჯამებთ.

ჩვენ გავდივართ იმავე მასივში, რომელსაც ჩვენ ვამუშავებთ, მაგრამ ჩვენ გავდივართ შემდეგ ინდექსში ჩვენი ამჟამინდელი ინდექსიდან. ჩვენ ამას ვაკეთებთ უბრალოდ ერთს დავამატებთ ჩვენს ამჟამინდელ ინდექსში, როგორც ეს ნაჩვენებია.

ნაბიჯი 6: შექმენით მთელი რიცხვის მასივი

შექმენით მთელი რიცხვების მასივი
შექმენით მთელი რიცხვების მასივი

ახლა, როდესაც ჩვენი რეკურსიული შეჯამების მეთოდი დასრულებულია, ჩვენ შეგვიძლია შევქმნათ ჩვენი მასივი, რომელსაც ჩვენ დავამუშავებთ. ეს მასივი იქნება ჩვენი ძირითადი მეთოდის ბლოკში.

შეგიძლიათ გააკეთოთ მასივის ზომა რამდენჯერაც გსურთ. მე შევქმენი რამდენიმე განსხვავებული მასივი განსხვავებული ზომებითა და მნიშვნელობებით, რათა ვაჩვენო რომ მუშაობს არა მხოლოდ ერთ ზომაზე.

ნაბიჯი 7: დარეკეთ მეთოდზე თქვენი მასივებით

დარეკეთ მეთოდზე თქვენი მასივებით
დარეკეთ მეთოდზე თქვენი მასივებით

ახლა თქვენ შეგიძლიათ დარეკოთ თქვენი რეკურსიული მეთოდი და გადასცეთ მასივები მას. ახლა თქვენ შეგიძლიათ გაუშვათ თქვენი პროგრამა.

ნაბიჯი 8: დაბეჭდეთ შედეგები

დაბეჭდე შედეგები
დაბეჭდე შედეგები
დაბეჭდე შედეგები
დაბეჭდე შედეგები

Არაფერი მომხდარა. რატომ? რეკურსიული ჯამი აბრუნებს მთელ რიცხვს, მაგრამ ჩვენ არაფერი გავაკეთეთ ამ მთელი რიცხვით. მან თავისი საქმე გააკეთა, მაგრამ შედეგს ვერ ვხედავთ. შედეგის სანახავად, ჩვენ უბრალოდ ვბეჭდავთ მას ასე. ამის გაშვების შემდეგ თქვენ უნდა ნახოთ შედეგები თითოეული თქვენი მასივისთვის.

ნაბიჯი 9: გილოცავთ

თქვენ დაასრულეთ რეკურსიული ფუნქცია. მოგერიდებათ შეცვალოთ თქვენი მასივების ზომა. თუ თქვენ გამოსცდით მას, შეამჩნევთ რომ ის იშლება, როდესაც ცარიელი მასივი გაქვთ. ჩვენ არ გავითვალისწინეთ ეს, მაგრამ ეს შესანიშნავი გზაა თქვენი რეკურსიული მეთოდის გასაუმჯობესებლად.

გირჩევთ: