สารบัญ:

การรวม Array แบบเรียกซ้ำใน Java: 9 ขั้นตอน
การรวม Array แบบเรียกซ้ำใน Java: 9 ขั้นตอน

วีดีโอ: การรวม Array แบบเรียกซ้ำใน Java: 9 ขั้นตอน

วีดีโอ: การรวม Array แบบเรียกซ้ำใน Java: 9 ขั้นตอน
วีดีโอ: 9.การทำซ้ำ (iteration, loop) หรือลูปในภาษา Python, C และ Java ไล่โค้ดกันทีละบรรทัด 2024, พฤศจิกายน
Anonim
รวม Array แบบเรียกซ้ำใน Java
รวม Array แบบเรียกซ้ำใน Java

การเรียกซ้ำเป็นขั้นตอนที่มีประโยชน์และประหยัดเวลาซึ่งสามารถแก้ปัญหาได้อย่างรวดเร็วด้วยโค้ดเพียงเล็กน้อย การเรียกซ้ำเกี่ยวข้องกับวิธีการที่คุณสร้างขึ้นเพื่อเรียกตัวเองว่าปัญหาเดิมสั้นลง

สำหรับตัวอย่างนี้ เราจะรวมอาร์เรย์ของจำนวนเต็ม 10 ตัว แต่ขนาดจะมีความยาวเท่าใดก็ได้

เสบียง

คุณควรทราบไวยากรณ์จาวาพื้นฐานและมี IDE หรือโปรแกรมแก้ไขข้อความเพื่อเขียนโค้ดสำหรับงานนี้

ขั้นตอนที่ 1: ตั้งค่าวิธีการหลักของคุณ

ตั้งค่าวิธีการหลักของคุณ
ตั้งค่าวิธีการหลักของคุณ

ในการเริ่มต้น ให้ตั้งค่าวิธีการหลักของคุณในคลาสที่สร้างขึ้นใหม่ ฉันตั้งชื่อคลาส RecursiveSum ของฉันแล้ว นี่คือที่ที่คุณจะสร้างอาร์เรย์ของจำนวนเต็มและเรียกวิธีการแบบเรียกซ้ำของคุณ

ขั้นตอนที่ 2: สร้างส่วนหัววิธีการเรียกซ้ำของคุณ

สร้างส่วนหัววิธีการเรียกซ้ำของคุณ
สร้างส่วนหัววิธีการเรียกซ้ำของคุณ

นอกวิธีการหลักของคุณ ให้สร้างส่วนหัวของวิธีการสำหรับวิธีการแบบเรียกซ้ำของคุณ

เมธอดเป็นแบบคงที่ เนื่องจากไม่ต้องใช้อ็อบเจ็กต์เพื่อใช้งาน

ประเภทการส่งคืนเป็น int เนื่องจากอาร์เรย์ที่เราจะใช้จะเป็นจำนวนเต็มในจำนวนเต็ม อย่างไรก็ตาม ค่านี้สามารถเปลี่ยนเป็นตัวเลขประเภทใดก็ได้ในอาร์เรย์

ฉันได้ตั้งชื่อวิธีการของฉัน recursiveSum ซึ่งจะรับสองพารามิเตอร์ อาร์เรย์ของจำนวนเต็มและดัชนีที่เราจะบวกเข้ากับผลรวม ฉันเรียกพารามิเตอร์เหล่านี้ว่าตัวเลขและดัชนีตามลำดับ

คุณจะเห็นข้อผิดพลาดในตอนนี้และก็ไม่เป็นไร พวกเขาจะได้รับการแก้ไขในภายหลัง

ขั้นตอนที่ 3: สร้าง Kicker/base Case ของคุณ

สร้าง Kicker/base Case ของคุณ
สร้าง Kicker/base Case ของคุณ

วิธีการแบบเรียกซ้ำต้องใช้ตัวเตะ/ตัวพิมพ์พื้นฐาน นี่เป็นเงื่อนไขที่จะหยุดวิธีการของคุณจากการเรียกตัวเองอย่างไม่สิ้นสุด กรณีฐานนี้ถือได้ว่าเป็นกรณีที่ง่ายที่สุดที่เราจะพบ ในกรณีนี้ กรณีฐานจะเป็นเมื่อเราอยู่ที่ส่วนท้ายของอาร์เรย์ของเรา หากดัชนีปัจจุบันเท่ากับความยาวของอาร์เรย์ (ลบ 1 เนื่องจากอาร์เรย์เริ่มนับจาก 0 ไม่ใช่ 1) เราอยู่ที่จุดสิ้นสุดและเราเพียงแค่ส่งคืนองค์ประกอบนั้นที่ดัชนีนั้น

ขั้นตอนที่ 4: ขั้นตอนแบบเรียกซ้ำ

ขั้นตอนแบบเรียกซ้ำ
ขั้นตอนแบบเรียกซ้ำ

เมื่อเราได้ตัวพิมพ์พื้นฐานแล้ว ขั้นตอนต่อไปคือขั้นตอนแบบเรียกซ้ำ นี่คือที่ที่เวทมนตร์เกิดขึ้น เราได้จัดการกรณีที่ดัชนีของเราเท่ากับองค์ประกอบสุดท้ายในอาร์เรย์ของเรา จะเกิดอะไรขึ้นถ้าเราไม่ได้อยู่ที่องค์ประกอบสุดท้ายในอาร์เรย์ของเรา จะเกิดอะไรขึ้นถ้าเราสามารถบอกให้เพิ่มองค์ประกอบปัจจุบันของเราบวกกับองค์ประกอบถัดไปได้ ในที่สุดเราจะถึงจุดสิ้นสุดของอาร์เรย์ของเราและกรณีฐานของเราจะได้รับผลกระทบ

เพื่อให้บรรลุสิ่งนี้ เราเพียงแค่ส่งคืนดัชนีปัจจุบันของเราและ "เพิ่มส่วนที่เหลือ" ของอาร์เรย์

ขั้นตอนที่ 5: ทำให้ปัญหาสั้นลง

ทำให้ปัญหาสั้นลง
ทำให้ปัญหาสั้นลง

เราจะ "เพิ่มส่วนที่เหลือ" ได้อย่างไร เรามีวิธีการที่จะเพิ่มองค์ประกอบบางอย่างอยู่แล้ว วิธีการ recursiveSum() ของเรา! เราสามารถเรียกมันอีกครั้ง แต่เปลี่ยนดัชนีที่เรากำลังรวม

เราส่งผ่านในอาร์เรย์เดียวกันกับที่เรากำลังประมวลผล แต่เราส่งผ่านในดัชนีถัดไปจากดัชนีปัจจุบันของเรา เราทำได้โดยเพียงแค่เพิ่มหนึ่งรายการในดัชนีปัจจุบันของเราดังที่แสดง

ขั้นตอนที่ 6: สร้างอาร์เรย์ของจำนวนเต็ม

สร้างอาร์เรย์ของจำนวนเต็ม
สร้างอาร์เรย์ของจำนวนเต็ม

ตอนนี้วิธีการรวมแบบเรียกซ้ำของเราเสร็จสมบูรณ์แล้ว เราสามารถสร้างอาร์เรย์ของเราที่เราจะประมวลผลได้ อาร์เรย์นี้จะอยู่ในบล็อกวิธีการหลักของเรา

คุณสามารถสร้างขนาดของอาร์เรย์ได้นานเท่าที่คุณต้องการ ฉันได้สร้างอาร์เรย์ที่แตกต่างกันสองสามแบบโดยมีขนาดและค่าต่างกันเพื่อแสดงว่ามันใช้งานได้ไม่ใช่แค่ขนาดเดียว

ขั้นตอนที่ 7: เรียกวิธีการด้วยอาร์เรย์ของคุณ

เรียกวิธีการด้วยอาร์เรย์ของคุณ
เรียกวิธีการด้วยอาร์เรย์ของคุณ

ตอนนี้คุณสามารถเรียกวิธีการเรียกซ้ำของคุณและส่งอาร์เรย์เหล่านี้ไป ตอนนี้คุณสามารถเรียกใช้โปรแกรมของคุณ

ขั้นตอนที่ 8: พิมพ์ผลลัพธ์

พิมพ์ผลลัพธ์
พิมพ์ผลลัพธ์
พิมพ์ผลลัพธ์
พิมพ์ผลลัพธ์

ไม่มีอะไรเกิดขึ้น. ทำไม? ผลรวมแบบเรียกซ้ำส่งคืนจำนวนเต็ม แต่เรายังไม่ได้ทำอะไรกับจำนวนเต็มนี้ ทำได้แล้วแต่เราไม่เห็นผล หากต้องการดูผลลัพธ์เราเพียงแค่พิมพ์ออกมาอย่างนั้น หลังจากรันสิ่งนี้ คุณจะเห็นผลลัพธ์สำหรับแต่ละอาร์เรย์ของคุณ

ขั้นตอนที่ 9: ขอแสดงความยินดี

คุณทำฟังก์ชันแบบเรียกซ้ำเสร็จแล้ว อย่าลังเลที่จะเปลี่ยนขนาดของอาร์เรย์ของคุณ หากคุณทดสอบ คุณจะสังเกตเห็นว่ามันล่มเมื่อคุณมีอาร์เรย์ว่าง เราไม่ได้คำนึงถึงมัน แต่นั่นเป็นวิธีที่ดีในการปรับปรุงวิธีการเรียกซ้ำของคุณ

แนะนำ: