Thuật toán là một thủ tục xác định bao gồm một dãy hữu hạn các bước cần thực hiện để thu được lời giải bài toán • Một thuật toán luôn có một tập dữ liệu đầu vào (input) và một tập dữ liệu đầu ra (output) tương ứng với yêu cầu và lời giải bài thể mô tả thuật toán bằng: • Ngôn ngữ tự nhiên (Natural language) • Mã giả (Pseudocode) • Ngôn ngữ lập trình cấp cao (High programming languages) như Pascal, C/C++ vv.