อัลกอริธึมถูกกำหนดให้เป็นชุดคำสั่งที่มีขอบเขตจำกัด ซึ่งหากปฏิบัติตาม จะทำหน้าที่เฉพาะ อัลกอริทึมทั้งหมดต้องเป็นไปตามเกณฑ์ต่อไปนี้
ป้อนข้อมูล. อัลกอริทึมมีอินพุตเป็นศูนย์หรือมากกว่า ที่รับหรือรวบรวมจากชุดออบเจ็กต์ที่ระบุ
เอาท์พุต อัลกอริทึมมีเอาต์พุตอย่างน้อยหนึ่งรายการที่มีความสัมพันธ์เฉพาะกับอินพุต
ความแน่นอน ต้องกำหนดแต่ละขั้นตอนให้ชัดเจน แต่ละคำสั่งต้องมีความชัดเจนและชัดเจน
ความจำกัด. อัลกอริธึมจะต้องเสร็จสิ้นหรือสิ้นสุดหลังจากผ่านขั้นตอนจำนวนจำกัดเสมอ
ประสิทธิผล. การดำเนินการทั้งหมดที่จะบรรลุผลสำเร็จจะต้องมีพื้นฐานเพียงพอที่จะสามารถทำได้อย่างแน่นอนและในระยะเวลาจำกัด
เราสามารถอธิบายอัลกอริทึมได้หลายวิธี
- ภาษาธรรมชาติ:ใช้ภาษาธรรมชาติเช่นภาษาอังกฤษ
- โฟลว์ชาร์ต:การแสดงกราฟิกแสดงถึงโฟลว์ชาร์ต เฉพาะในกรณีที่อัลกอริธึมมีขนาดเล็กและเรียบง่าย
- รหัสหลอก:รหัสหลอกนี้ข้ามประเด็นที่มีความคลุมเครือเกือบทั้งหมด ไม่มีความเฉพาะเจาะจงเกี่ยวกับภาษาการเขียนโปรแกรมไวยากรณ์
ตัวอย่างที่ 1:อัลกอริธึมในการคำนวณค่าแฟกทอเรียลของตัวเลข
Step 1: a number n is inputted Step 2: variable final is set as 1 Step 3: final<= final * n Step 4: decrease n Step 5: verify if n is equal to 0 Step 6: if n is equal to zero, goto step 8 (break out of loop) Step 7: else goto step 3 Step 8: the result final is printed
อัลกอริทึมแบบเรียกซ้ำ
อัลกอริธึมแบบเรียกซ้ำจะเรียกตัวเองซึ่งโดยทั่วไปแล้วส่งคืนค่าเป็นพารามิเตอร์ไปยังอัลกอริธึมอีกครั้ง พารามิเตอร์นี้ระบุอินพุตในขณะที่ค่าที่ส่งคืนระบุเอาต์พุต
อัลกอริธึมแบบเรียกซ้ำถูกกำหนดให้เป็นวิธีการทำให้เข้าใจง่ายที่แบ่งปัญหาออกเป็นปัญหาย่อยที่มีลักษณะเดียวกัน ผลลัพธ์ของการเรียกซ้ำหนึ่งครั้งจะถือเป็นอินพุตสำหรับการเรียกซ้ำครั้งต่อไป การเติมเต็มในลักษณะแฟชั่นที่คล้ายคลึงกันในตัวเอง อัลกอริธึมเรียกตัวเองด้วยค่าอินพุตที่น้อยกว่าและรับผลลัพธ์โดยเพียงแค่ดำเนินการกับค่าที่น้อยกว่าเหล่านี้ให้สำเร็จ การสร้างแฟกทอเรียลชุดเลขฟีโบนักชีแสดงเป็นตัวอย่างของอัลกอริธึมแบบเรียกซ้ำ
ตัวอย่าง:การเขียนฟังก์ชันแฟกทอเรียลโดยใช้การเรียกซ้ำ
intfactorialA(int n) { return n * factorialA(n-1); }