Bài giảng “Nhập môn lập trình – Chương 5: Giới thiệu về thuật toán” cung cấp cho người học các kiến thức: Khái niệm về thuật toán, chương trình cài đặt thuật toán, độ phức tạp của thuật toán, các vấn đề tìm hiểu mở rộng kiến thức nghề nghiệp,… Mời các bạn cùng tham khảo nội dung chi tiết.
Nhập mơn lập trình Trình bày: …; Email: …@fit.hcmus.edu.vn Khái niệm thuật tốn Chương trình cài đặt thuật tốn Độ phức tạp thuật tốn Các vấn đề tìm hiểu mở rộng kiến thức nghề nghiệp Thuật ngữ đọc thêm tiếng Anh 11/10/2012 Khoa CNTT - ĐH Khoa học tự nhiên • Máy tính công cụ đắc lực hỗ trợ người việc tính tốn xử lý • Phát biểu tốn ngôn ngữ tự nhiên đầu vào cho máy tính • Con người phải mơ hình hóa tốn thơng qua cấu trúc liệu, vốn hỗ trợ ngơn ngữ lập trình, từ sở đến nâng cao mảng, cấu trúc, tập hợp, đồ thị, cây, … 11/10/2012 Khoa CNTT - ĐH Khoa học tự nhiên • Trên sở mơ hình liệu xây dựng, người phải cho máy tính cách thức để giải toán (gọi thuật toán hay giải thuật) • Thuật tốn hiểu qui trình xử lý bao gồm bước cụ thể thực để giải toán 11/10/2012 Khoa CNTT - ĐH Khoa học tự nhiên • Mỗi thuật tốn cần đáp ứng tiêu chuẩn: – Tính hữu hạn: Thuật toán phải kết thúc thực thi sau số lượng hữu hạn bước xử lý – Tính xác định: Mỗi bước xử lý phải mơ tả rõ ràng, xác, khơng nhập nhằng – Tồn liệu đầu vào: Thuật tốn phải có liệu đầu vào hợp lệ, mô tả rõ ràng – Tính có kết quả: Thuật tốn phải cho kết sở liệu đầu vào hợp lệ – Tín hiệu quả: Mỗi bước xử lý phải đơn giản với thời gian thực thi hữu hạn Trong thực tế điều có nghĩa phải thực thi khoảng thời gian chấp nhận – Tính phổ dụng: Thuật tốn áp dụng để xử lý họ toán 11/10/2012 Khoa CNTT - ĐH Khoa học tự nhiên • Chúng ta sử dụng bốn cách sau để mơ tả thuật tốn: – Ngơn ngữ tự nhiên: tiếng Việt, tiếng Anh, … – Lưu đồ – Mã giả: thường dựa vào cú pháp số ngôn ngữ lập trình thơng dụng Pascal, C/C++, … – Ngơn ngữ lập trình cấp cao • Khơng nên sâu vào chi tiết kỹ thuật làm tính trừu tượng thuật tốn 11/10/2012 Khoa CNTT - ĐH Khoa học tự nhiên • Ví dụ tìm số lớn dãy – Bước 1: Đặt số lớn với số nguyên không dấu dãy – Bước 2: Nếu khơng cịn số nguyên chuyển sang Bước – Bước 3: Nếu số nguyên lớn số lớn đặt số lớn số nguyên Quay Bước – Bước 4: Số lớn số lớn dãy, kết thuật toán 11/10/2012 Khoa CNTT - ĐH Khoa học tự nhiên • Ví dụ tìm số lớn dãy int timSoLonNhat(int a[], int n) { int i, max; for (i = 1; i < n; i++) if (max < a[i]) max = a[i]; return max; } 11/10/2012 Khoa CNTT - ĐH Khoa học tự nhiên • Sử dụng khối hình sau: – Các hình chữ nhật biểu thị chị tính tốn hay xử lý (nhập, xuất, gán, thực phép tính) – Các hình thoi thể định rẽ nhánh tùy theo biểu thức hình thoi có giá trị (Đ) hay sai (S) – Các mũi tên hướng luồng điều khiển, thể thứ tự thực khối xử lý 11/10/2012 Khoa CNTT - ĐH Khoa học tự nhiên 10 • Đối với vấn đề đặt tồn nhiều thuật tốn xử lý • Ngồi việc phải thuật tốn có tính đắn ta cịn phải biết thuật tốn tốt giải vấn đề (theo nghĩa chạy nhanh hay độ phức tạp thấp hơn) 11/10/2012 Khoa CNTT - ĐH Khoa học tự nhiên 16 • Trong điều kiện hoạt động (dữ liệu đầu vào, tốc độ phần cứng, …) thuật tốn cho kết sớm thuật tốn tốt • Tuy nhiên, để đảm bảo điều kiện hoạt động đồng khó hệ thống đa nhiệm CPU khơng dành 100% cơng suất để phục vụ riêng cho chương trình chạy thử nghiệm 11/10/2012 Khoa CNTT - ĐH Khoa học tự nhiên 17 • Khơng phải nhóm thuật tốn cân đo, đong đếm cách tường minh • Ví dụ tìm số Fibonacci thứ n, biết F0 = F = Fn = Fn-1 + Fn-2 n ≥ 11/10/2012 Khoa CNTT - ĐH Khoa học tự nhiên 18 • Thuật tốn thứ Mã giả 10 11 12 13 11/10/2012 Cài đặt C/C++ Computing: Fibonacci(n) if n