เทคนิคการเขียนโปรแกรมของโปรแกรมที่เรียกว่าตัวเองเรียกว่าการเรียกซ้ำ การเรียกซ้ำใช้กันอย่างแพร่หลายเป็นอัลกอริทึมในภาษาการเขียนโปรแกรม กระบวนการหรือฟังก์ชั่นมีวิธีการเรียกตัวเองโดยตรงหรือโดยอ้อมในคำจำกัดความหรือคำอธิบาย มันมักจะแปลงเลเยอร์ปัญหาขนาดใหญ่และซับซ้อนโดยเลเยอร์เป็นปัญหาที่เล็กกว่าคล้ายกับปัญหาดั้งเดิมในการแก้ปัญหา กลยุทธ์แบบเรียกซ้ำต้องใช้โปรแกรมจำนวนน้อยเพื่ออธิบายการคำนวณซ้ำหลายครั้งที่จำเป็นสำหรับกระบวนการแก้ปัญหาลดจำนวนรหัสในโปรแกรมอย่างมาก ความสามารถของการเรียกซ้ำอยู่ในการใช้คำสั่ง จำกัด เพื่อกำหนดชุดวัตถุที่ไม่มีที่สิ้นสุด โดยทั่วไปการพูดซ้ำต้องใช้เงื่อนไขขอบเขตกลุ่มล่วงหน้าแบบเรียกซ้ำและกลุ่มผลตอบแทนแบบเรียกซ้ำ เมื่อเงื่อนไขขอบเขตไม่พอใจให้ดำเนินการซ้ำ เมื่อเงื่อนไขขอบเขตเป็นที่พอใจให้ส่งคืนซ้ำ - นี่คือสิ่งที่สารานุกรม Baidu กล่าว
ในความเป็นจริงที่จะกล่าวอย่างตรงไปตรงมามันเป็นการดำเนินการที่ดำเนินการโดยวิธีการเรียกซ้ำตัวเองเรียกตัวเอง ให้ฉันยกตัวอย่างให้คุณเห็นตัวอย่างนี้ซึ่งเป็นลำดับ Fibonacci ที่มีชื่อเสียงมาก
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368 ...
จะเห็นได้ว่าหมายเลขที่สามนั้นได้มาจากการเพิ่มตัวเลขสองตัวแรก
นี่คือความหมายหากคุณใช้ลูปปกติ:
ชั้นเรียนสาธารณะ Feibo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {int num1 = 0; int num2 = 1; int numn = 1; int n = 10; สำหรับ (int i = 3; i <= n; i ++) {numn = num1+num2; num1 = num2; num2 = numn; } system.err.println (n+"ผลลัพธ์คือ:"+numn); -ผลการดำเนินการคือ:
ผลลัพธ์ของ 10 ตัวเลขคือ: 34
นี่คือการใช้วิธีการวนรอบปกติสำหรับการทำงานหากคุณใช้การเรียกซ้ำมันก็เป็นเช่นนี้:
การเรียกซ้ำ int คงที่สาธารณะ (int n) {ถ้า (n == 1) {return 0; } if (n == 2) {return 1; } return Recursion (N-1)+การเรียกซ้ำ (N-2); -การเรียกซ้ำต้องใช้เงื่อนไขสิ้นสุดและในกรณีที่เรียกซ้ำไม่จำเป็นต้องโทรต่อไปสิ้นสุดการเรียกซ้ำ เงื่อนไขสิ้นสุดของกรณีข้างต้นคือเมื่อ n = 1 หรือ 2 จะส่งคืน 0 หรือ 1 แทนที่จะเรียกใช้วิธีการเรียกซ้ำต่อไป
เงื่อนไขหลักสองประการสำหรับการเรียกซ้ำคือเรียกตัวเองและยุติการเรียกซ้ำ
เนื่องจากการเรียกซ้ำถูกเรียกโดยตัวเองมันเสียทรัพยากรจำนวนมากเวลาทำงานจึงยาวกว่าลูปเวลาทำงานช้าลงและประสิทธิภาพต่ำ
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น