Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

บทนำข้อมูลจำเพาะอัลกอริทึมในโครงสร้างข้อมูล


อัลกอริธึมถูกกำหนดให้เป็นชุดคำสั่งที่มีขอบเขตจำกัด ซึ่งหากปฏิบัติตาม จะทำหน้าที่เฉพาะ อัลกอริทึมทั้งหมดต้องเป็นไปตามเกณฑ์ต่อไปนี้

ป้อนข้อมูล. อัลกอริทึมมีอินพุตเป็นศูนย์หรือมากกว่า ที่รับหรือรวบรวมจากชุดออบเจ็กต์ที่ระบุ

เอาท์พุต อัลกอริทึมมีเอาต์พุตอย่างน้อยหนึ่งรายการที่มีความสัมพันธ์เฉพาะกับอินพุต

ความแน่นอน ต้องกำหนดแต่ละขั้นตอนให้ชัดเจน แต่ละคำสั่งต้องมีความชัดเจนและชัดเจน

ความจำกัด. อัลกอริธึมจะต้องเสร็จสิ้นหรือสิ้นสุดหลังจากผ่านขั้นตอนจำนวนจำกัดเสมอ

ประสิทธิผล. การดำเนินการทั้งหมดที่จะบรรลุผลสำเร็จจะต้องมีพื้นฐานเพียงพอที่จะสามารถทำได้อย่างแน่นอนและในระยะเวลาจำกัด

เราสามารถอธิบายอัลกอริทึมได้หลายวิธี

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

ตัวอย่างที่ 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);
}