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

Sự khác biệt giữa các thuật toán xác định và không xác định

Trong ngữ cảnh lập trình, Thuật toán là một tập hợp các lệnh được xác định rõ ràng theo trình tự để thực hiện một tác vụ cụ thể và đạt được kết quả đầu ra mong muốn. Ở đây chúng tôi nói tập hợp các hướng dẫn được xác định có nghĩa là ở đâu đó người dùng biết kết quả của các hướng dẫn đó nếu chúng được thực thi theo cách mong đợi.

Trên cơ sở kiến ​​thức về kết quả của các hướng dẫn, có hai loại thuật toán cụ thể là - Thuật toán xác định và không xác định. Sau đây là những điểm khác biệt chính giữa cả hai thuật toán -

Sr. Không. Phím Thuật toán xác định Thuật toán không xác định
1 Định nghĩa Các thuật toán trong đó kết quả của mọi thuật toán được xác định duy nhất được gọi là Thuật toán xác định. Nói cách khác, chúng ta có thể nói rằng thuật toán xác định là thuật toán thực hiện một số bước cố định và luôn kết thúc với trạng thái chấp nhận hoặc từ chối với cùng một kết quả.
Mặt khác, các thuật toán trong đó kết quả của mọi thuật toán không được xác định duy nhất và kết quả có thể là ngẫu nhiên được gọi là Thuật toán không xác định.
2 Thực thi Trong thực thi Thuật toán xác định, máy đích thực hiện cùng một lệnh và cho kết quả giống nhau mà không phụ thuộc vào cách thức hoặc quy trình mà lệnh được thực thi. Mặt khác, trong trường hợp Thuật toán không xác định, máy thực hiện mỗi thao tác được phép chọn bất kỳ một trong các đối tượng kết quả này cho một điều kiện xác định sẽ được xác định sau này.
3 Loại Trên cơ sở thực thi và kết quả trong trường hợp của thuật toán Xác định, chúng cũng được phân loại là các thuật toán đáng tin cậy vì đối với một lệnh đầu vào cụ thể, máy sẽ luôn đưa ra cùng một đầu ra. Mặt khác, thuật toán không xác định được phân loại là thuật toán không đáng tin cậy cho một đầu vào cụ thể, máy sẽ đưa ra đầu ra khác nhau trên các lần thực thi khác nhau.
4 Thời gian Thực thi Vì kết quả đã biết và nhất quán trên các lần thực thi khác nhau nên thuật toán Xác định cần thời gian đa thức để thực hiện chúng. Mặt khác, do kết quả không được biết trước và không nhất quán trên các lần thực thi khác nhau nên thuật toán Không xác định không thể được thực thi trong thời gian đa thức.
5 Đường dẫn thực thi Trong thuật toán xác định, đường dẫn thực thi cho thuật toán là như nhau trong mọi lần thực thi. Mặt khác, trong trường hợp thuật toán Không xác định, đường dẫn thực thi không giống nhau đối với thuật toán trong mọi lần thực thi và có thể lấy bất kỳ đường dẫn ngẫu nhiên nào để thực thi.