Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง Recursion และ Iteration ใน Java

Recursion และ Iteration ทั้งคู่ทำการ execute ชุดคำสั่งซ้ำๆ Recursion คือเมื่อคำสั่งในฟังก์ชัน เรียกตัวเองซ้ำๆ ส่วน Iteration คือเมื่อลูป execute ซ้ำจนกว่าเงื่อนไขควบคุมจะเป็น false ความแตกต่างหลักคือ recursion เป็นกระบวนการที่ใช้กับฟังก์ชันเสมอ ส่วน iteration ใช้กับ ชุดคำสั่ง ที่เราต้องการให้ execute ซ้ำ

Recursion

  • Recursion ใช้ selection structure
  • Infinite recursion เกิดขึ้นหากขั้นตอน recursion ไม่ลดปัญหาให้เข้าเงื่อนไขพื้นฐาน (base case) และ infinite recursion อาจทำให้ระบบ crash
  • Recursion จบเมื่อพบ base case
  • Recryption ปกติ ช้ากว่า iteration เนื่องจาก overhead ของการ maintain stack
  • Recursion ใช้ หน่วยความจำมากกว่า iteration
  • Recursion ทำให้ โค้ดสั้นกว่า

ตัวอย่าง

public class RecursionExample {
    public static void main(String args[]) {
        RecursionExample re = new RecursionExample();
        int result = re.factorial(4);
        System.out.println("Result:" + result);
    }
    public int factorial(int n) {
        if (n==0) {
            return 1;
        } else {
            return n*factorial(n-1);
        }
    }
}

ผลลัพธ์

Result:24

Iteration

  • Iteration ใช้ repetition structure
  • Infinite loop เกิดขึ้นกับ iteration หากเงื่อนไขลูปไม่เคยเป็น false และ infinite looping ใช้ CPU cycles ซ้ำๆ
  • Iteration จบ เมื่อ loop condition fails
  • Iteration ไม่ใช้ stack จึง เร็วกว่า recursion
  • Iteration ใช้ หน่วยความจำน้อยกว่า
  • Iteration ทำให้ โค้ดยาวกว่า

ตัวอย่าง

public class IterationExample {
    public static void main(String args[]) {
        for(int i = 1; i <= 5; i++) {
            System.out.println(i + " ");
        }
    }
}

ผลลัพธ์

1
2
3
4
5