Computer >> Máy Tính >  >> Lập trình >> Lập trình

Đặc tả thuật toán-Giới thiệu trong cấu trúc dữ liệu

Thuật toán được định nghĩa là một tập hợp các lệnh hữu hạn, nếu được tuân theo, sẽ thực hiện một tác vụ cụ thể. Tất cả các thuật toán phải đáp ứng các tiêu chí sau

Đầu vào. Một thuật toán không có hoặc nhiều đầu vào, được lấy hoặc thu thập từ một tập hợp các đối tượng cụ thể.

Đầu ra. Một thuật toán có một hoặc nhiều đầu ra có mối quan hệ cụ thể với các đầu vào.

Tính xác định. Mỗi bước phải được xác định rõ ràng; Mỗi hướng dẫn phải rõ ràng và không rõ ràng.

Tính hữu hạn. Thuật toán phải luôn kết thúc hoặc kết thúc sau một số bước hữu hạn.

Tính hiệu quả. Tất cả các hoạt động được thực hiện phải đủ cơ bản để chúng có thể được thực hiện chính xác và trong thời gian hữu hạn.

Chúng tôi có thể mô tả thuật toán theo nhiều cách.

  • Ngôn ngữ tự nhiên:triển khai một ngôn ngữ tự nhiên như tiếng Anh
  • Biểu đồ luồng:Biểu diễn đồ họa được ký hiệu là lưu đồ, chỉ khi thuật toán nhỏ và đơn giản.
  • Mã giả:Mã giả này bỏ qua hầu hết các vấn đề về sự không rõ ràng; không có gì đặc biệt về ngôn ngữ lập trình cú pháp.

Ví dụ 1:Thuật toán tính giá trị giai thừa của một số

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

Thuật toán đệ quy

Thuật toán đệ quy gọi chính nó và thường chuyển lại giá trị trả về làm tham số cho thuật toán. Tham số này cho biết đầu vào trong khi giá trị trả về cho biết đầu ra.

Thuật toán đệ quy được định nghĩa là một phương pháp đơn giản hóa để chia bài toán thành các bài toán con có cùng tính chất. Kết quả của một lần đệ quy được coi là đầu vào cho lần đệ quy tiếp theo. Việc bổ sung là theo cách tương tự. Thuật toán tự gọi các giá trị đầu vào nhỏ hơn và thu được kết quả bằng cách thực hiện các thao tác trên các giá trị nhỏ hơn này một cách đơn giản. Việc tạo ra giai thừa, chuỗi số Fibonacci được biểu thị là các ví dụ của thuật toán đệ quy.

Ví dụ:Viết hàm giai thừa sử dụng đệ quy

intfactorialA(int n)
{
   return n * factorialA(n-1);
}