Mundarija:

Java -dagi massivni takroriy yig'ish: 9 qadam
Java -dagi massivni takroriy yig'ish: 9 qadam

Video: Java -dagi massivni takroriy yig'ish: 9 qadam

Video: Java -dagi massivni takroriy yig'ish: 9 qadam
Video: Сортировка пузырьком. Пишем реализацию на Java вместе, с нуля. 2024, Noyabr
Anonim
Java -dagi massivni rekursiv ravishda yig'ish
Java -dagi massivni rekursiv ravishda yig'ish

Rekursiya - juda kam kod bilan muammoni tezda hal qila oladigan juda foydali va vaqtni tejaydigan protsedura. Rekursiya siz yaratgan usulni o'z ichiga oladi, bu asl muammoni qisqartiradi.

Bu misol uchun biz 10 ta butun sonli massivni yig'amiz, lekin hajmi har qanday uzunlikda bo'lishi mumkin.

Ta'minotlar

Siz java -ning asosiy sintaksisini bilishingiz va bu vazifani bajarish uchun kodingizni yozish uchun IDE yoki matn muharririga ega bo'lishingiz kerak.

1 -qadam: Asosiy usulni o'rnating

Asosiy usulingizni o'rnating
Asosiy usulingizni o'rnating

Boshlash uchun asosiy usulingizni yangi yaratilgan sinfga o'rnating. Men o'z sinfimni RecursiveSum deb nomladim. Bu erda siz butun sonlar qatorini yaratasiz va o'z rekursiv usulingizni chaqirasiz.

2 -qadam: Rekursiv usul sarlavhasini yarating

Rekursiv usul sarlavhasini yarating
Rekursiv usul sarlavhasini yarating

Asosiy usuldan tashqarida, rekursiv usulingiz uchun usul sarlavhasini yarating.

Usul statikdir, chunki uni ishlatish uchun ob'ekt talab qilinmaydi.

Qaytish turi int, chunki biz foydalanadigan qator butun sonlarga to'la bo'ladi. Biroq, bu qatorni o'z ichiga olgan har qanday raqam turiga o'zgartirilishi mumkin.

Men o'z usulimni recursiveSum deb nomladim, u ikkita parametrni oladi; butun sonlar qatori va biz qo'shadigan indeks. Men bu parametrlarni mos ravishda raqamlar va indeks deb atadim.

Siz hozir xatolarni ko'rasiz va bu yaxshi. Ular keyinroq tuzatiladi.

3 -qadam: Kicker/tayanch qutisini yarating

Kicker/tayanch qutisini yarating
Kicker/tayanch qutisini yarating

Rekursiv usulga kicker/base case kerak. Bu sizning usulingizni cheksiz o'zini chaqirishni to'xtatadigan shart. Bu asosiy holatni biz duch keladigan eng oddiy holat deb hisoblash mumkin. Bunday holda, asosiy holat bizning qatorimiz oxirida bo'ladi. Agar joriy indeks qator uzunligiga teng bo'lsa (minus 1, chunki massivlar 0 dan emas, balki 0 dan hisoblashni boshlaydi), biz oxiridamiz va biz bu elementni o'sha indeksga qaytaramiz.

4 -qadam: Rekursiv qadam

Rekursiv qadam
Rekursiv qadam

Bizda asosiy holat bo'lsa, keyingi qadam - bu bizning rekursiv qadamimiz. Bu erda sehr paydo bo'ladi. Bizning indeksimiz qatorimizdagi oxirgi elementga teng bo'lgan holatni ko'rib chiqdik. Agar biz qatorimizning oxirgi elementida bo'lmasak nima bo'ladi? Agar biz unga hozirgi elementimizni va keyingi elementimizni qo'shishni aytsak nima bo'ladi? Oxir -oqibat, biz qatorning oxiriga etib boramiz va bizning asosiy holatimiz ta'sir qiladi.

Buni amalga oshirish uchun biz hozirgi indeksni qaytaramiz va qatorning "qolgan qismini qo'shamiz".

5 -qadam: Muammoni qisqartiring

Muammoni qisqartiring
Muammoni qisqartiring

Qanday qilib biz "qolganini qo'shamiz"? Bizda ma'lum bir elementni qo'shadigan usul mavjud; bizning recursiveSum () usuli! Biz uni yana chaqira olamiz, lekin qaysi indeksni yig'amiz.

Biz ishlov berayotgan qatorni o'tkazamiz, lekin biz joriy indeksdan keyingi indeksni o'tkazamiz. Biz buni joriy indeksimizga ko'rsatilgandek qo'shish orqali qilamiz.

6 -qadam: Butun sonlar massivini yarating

Butun sonlar qatorini yarating
Butun sonlar qatorini yarating

Endi bizning rekursiv yig'ish usuli tugallangach, biz ishlov beradigan qatorni yaratishimiz mumkin. Bu qator bizning asosiy usul blokimizda bo'ladi.

Siz xohlagancha massiv hajmini yasashingiz mumkin. Men har xil o'lcham va qiymatlarga ega bo'lgan bir nechta massivlarni yaratdim, ular bitta o'lchamda emas.

7 -qadam: Usulni massivlaringiz bilan chaqiring

O'zingizning massivlaringiz bilan usulni chaqiring
O'zingizning massivlaringiz bilan usulni chaqiring

Endi siz o'z rekursiv usulingizga qo'ng'iroq qilishingiz va unga bu massivlarni o'tkazishingiz mumkin. Endi siz dasturni ishga tushirishingiz mumkin.

8 -qadam: natijalarni chop eting

Natijalarni chop eting
Natijalarni chop eting
Natijalarni chop eting
Natijalarni chop eting

Hech narsa bo'lmadi. Nima uchun? Rekursiv summa butun sonni qaytaradi, lekin biz bu tamsayı bilan hech narsa qilmaganmiz. Bu o'z vazifasini bajardi, lekin natijasini ko'ra olmayapmiz. Natijani ko'rish uchun biz shunchaki shunday chop etamiz. Buni ishga tushirgandan so'ng, siz har bir massiv uchun natijalarni ko'rishingiz kerak.

9 -qadam: Tabriklaymiz

Siz rekursiv funktsiyani bajardingiz. O'zingizning massivlaringiz hajmini o'zgartirishingiz mumkin. Agar siz uni sinab ko'rsangiz, bo'sh massiv bo'lsa, u qulab tushishini ko'rasiz. Biz buni hisobga olmadik, lekin bu sizning rekursiv usulingizni yaxshilashning ajoyib usuli.

Tavsiya: