สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ตั้งค่าวิธีการหลักของคุณ
- ขั้นตอนที่ 2: สร้างส่วนหัววิธีการเรียกซ้ำของคุณ
- ขั้นตอนที่ 3: สร้าง Kicker/base Case ของคุณ
- ขั้นตอนที่ 4: ขั้นตอนแบบเรียกซ้ำ
- ขั้นตอนที่ 5: ทำให้ปัญหาสั้นลง
- ขั้นตอนที่ 6: สร้างอาร์เรย์ของจำนวนเต็ม
- ขั้นตอนที่ 7: เรียกวิธีการด้วยอาร์เรย์ของคุณ
- ขั้นตอนที่ 8: พิมพ์ผลลัพธ์
- ขั้นตอนที่ 9: ขอแสดงความยินดี
วีดีโอ: การรวม Array แบบเรียกซ้ำใน Java: 9 ขั้นตอน
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
การเรียกซ้ำเป็นขั้นตอนที่มีประโยชน์และประหยัดเวลาซึ่งสามารถแก้ปัญหาได้อย่างรวดเร็วด้วยโค้ดเพียงเล็กน้อย การเรียกซ้ำเกี่ยวข้องกับวิธีการที่คุณสร้างขึ้นเพื่อเรียกตัวเองว่าปัญหาเดิมสั้นลง
สำหรับตัวอย่างนี้ เราจะรวมอาร์เรย์ของจำนวนเต็ม 10 ตัว แต่ขนาดจะมีความยาวเท่าใดก็ได้
เสบียง
คุณควรทราบไวยากรณ์จาวาพื้นฐานและมี IDE หรือโปรแกรมแก้ไขข้อความเพื่อเขียนโค้ดสำหรับงานนี้
ขั้นตอนที่ 1: ตั้งค่าวิธีการหลักของคุณ
ในการเริ่มต้น ให้ตั้งค่าวิธีการหลักของคุณในคลาสที่สร้างขึ้นใหม่ ฉันตั้งชื่อคลาส RecursiveSum ของฉันแล้ว นี่คือที่ที่คุณจะสร้างอาร์เรย์ของจำนวนเต็มและเรียกวิธีการแบบเรียกซ้ำของคุณ
ขั้นตอนที่ 2: สร้างส่วนหัววิธีการเรียกซ้ำของคุณ
นอกวิธีการหลักของคุณ ให้สร้างส่วนหัวของวิธีการสำหรับวิธีการแบบเรียกซ้ำของคุณ
เมธอดเป็นแบบคงที่ เนื่องจากไม่ต้องใช้อ็อบเจ็กต์เพื่อใช้งาน
ประเภทการส่งคืนเป็น int เนื่องจากอาร์เรย์ที่เราจะใช้จะเป็นจำนวนเต็มในจำนวนเต็ม อย่างไรก็ตาม ค่านี้สามารถเปลี่ยนเป็นตัวเลขประเภทใดก็ได้ในอาร์เรย์
ฉันได้ตั้งชื่อวิธีการของฉัน recursiveSum ซึ่งจะรับสองพารามิเตอร์ อาร์เรย์ของจำนวนเต็มและดัชนีที่เราจะบวกเข้ากับผลรวม ฉันเรียกพารามิเตอร์เหล่านี้ว่าตัวเลขและดัชนีตามลำดับ
คุณจะเห็นข้อผิดพลาดในตอนนี้และก็ไม่เป็นไร พวกเขาจะได้รับการแก้ไขในภายหลัง
ขั้นตอนที่ 3: สร้าง Kicker/base Case ของคุณ
วิธีการแบบเรียกซ้ำต้องใช้ตัวเตะ/ตัวพิมพ์พื้นฐาน นี่เป็นเงื่อนไขที่จะหยุดวิธีการของคุณจากการเรียกตัวเองอย่างไม่สิ้นสุด กรณีฐานนี้ถือได้ว่าเป็นกรณีที่ง่ายที่สุดที่เราจะพบ ในกรณีนี้ กรณีฐานจะเป็นเมื่อเราอยู่ที่ส่วนท้ายของอาร์เรย์ของเรา หากดัชนีปัจจุบันเท่ากับความยาวของอาร์เรย์ (ลบ 1 เนื่องจากอาร์เรย์เริ่มนับจาก 0 ไม่ใช่ 1) เราอยู่ที่จุดสิ้นสุดและเราเพียงแค่ส่งคืนองค์ประกอบนั้นที่ดัชนีนั้น
ขั้นตอนที่ 4: ขั้นตอนแบบเรียกซ้ำ
เมื่อเราได้ตัวพิมพ์พื้นฐานแล้ว ขั้นตอนต่อไปคือขั้นตอนแบบเรียกซ้ำ นี่คือที่ที่เวทมนตร์เกิดขึ้น เราได้จัดการกรณีที่ดัชนีของเราเท่ากับองค์ประกอบสุดท้ายในอาร์เรย์ของเรา จะเกิดอะไรขึ้นถ้าเราไม่ได้อยู่ที่องค์ประกอบสุดท้ายในอาร์เรย์ของเรา จะเกิดอะไรขึ้นถ้าเราสามารถบอกให้เพิ่มองค์ประกอบปัจจุบันของเราบวกกับองค์ประกอบถัดไปได้ ในที่สุดเราจะถึงจุดสิ้นสุดของอาร์เรย์ของเราและกรณีฐานของเราจะได้รับผลกระทบ
เพื่อให้บรรลุสิ่งนี้ เราเพียงแค่ส่งคืนดัชนีปัจจุบันของเราและ "เพิ่มส่วนที่เหลือ" ของอาร์เรย์
ขั้นตอนที่ 5: ทำให้ปัญหาสั้นลง
เราจะ "เพิ่มส่วนที่เหลือ" ได้อย่างไร เรามีวิธีการที่จะเพิ่มองค์ประกอบบางอย่างอยู่แล้ว วิธีการ recursiveSum() ของเรา! เราสามารถเรียกมันอีกครั้ง แต่เปลี่ยนดัชนีที่เรากำลังรวม
เราส่งผ่านในอาร์เรย์เดียวกันกับที่เรากำลังประมวลผล แต่เราส่งผ่านในดัชนีถัดไปจากดัชนีปัจจุบันของเรา เราทำได้โดยเพียงแค่เพิ่มหนึ่งรายการในดัชนีปัจจุบันของเราดังที่แสดง
ขั้นตอนที่ 6: สร้างอาร์เรย์ของจำนวนเต็ม
ตอนนี้วิธีการรวมแบบเรียกซ้ำของเราเสร็จสมบูรณ์แล้ว เราสามารถสร้างอาร์เรย์ของเราที่เราจะประมวลผลได้ อาร์เรย์นี้จะอยู่ในบล็อกวิธีการหลักของเรา
คุณสามารถสร้างขนาดของอาร์เรย์ได้นานเท่าที่คุณต้องการ ฉันได้สร้างอาร์เรย์ที่แตกต่างกันสองสามแบบโดยมีขนาดและค่าต่างกันเพื่อแสดงว่ามันใช้งานได้ไม่ใช่แค่ขนาดเดียว
ขั้นตอนที่ 7: เรียกวิธีการด้วยอาร์เรย์ของคุณ
ตอนนี้คุณสามารถเรียกวิธีการเรียกซ้ำของคุณและส่งอาร์เรย์เหล่านี้ไป ตอนนี้คุณสามารถเรียกใช้โปรแกรมของคุณ
ขั้นตอนที่ 8: พิมพ์ผลลัพธ์
ไม่มีอะไรเกิดขึ้น. ทำไม? ผลรวมแบบเรียกซ้ำส่งคืนจำนวนเต็ม แต่เรายังไม่ได้ทำอะไรกับจำนวนเต็มนี้ ทำได้แล้วแต่เราไม่เห็นผล หากต้องการดูผลลัพธ์เราเพียงแค่พิมพ์ออกมาอย่างนั้น หลังจากรันสิ่งนี้ คุณจะเห็นผลลัพธ์สำหรับแต่ละอาร์เรย์ของคุณ
ขั้นตอนที่ 9: ขอแสดงความยินดี
คุณทำฟังก์ชันแบบเรียกซ้ำเสร็จแล้ว อย่าลังเลที่จะเปลี่ยนขนาดของอาร์เรย์ของคุณ หากคุณทดสอบ คุณจะสังเกตเห็นว่ามันล่มเมื่อคุณมีอาร์เรย์ว่าง เราไม่ได้คำนึงถึงมัน แต่นั่นเป็นวิธีที่ดีในการปรับปรุงวิธีการเรียกซ้ำของคุณ