Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 38 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
38
Dung lượng
14,84 MB
Nội dung
Trường Đại Học Hàng Hải Việt Nam Khoa Công Nghệ Thơng Tin ĐỀ CƯƠNG ƠN TẬP MƠN HỌC: PHÂN TÍCH THIẾT KẾ VÀ ĐÁNH GIÁ THUẬT TOÁN Sinh viên: Đỗ Đức Hùng Lớp: CNT50ĐH1 MSV: 37172 Mail: doduchung2008@gmail.com Web: http://doduchung.co.cc Hải Phòng, 21/06/2011 ĐỀ CƯƠNG PTTK && ĐGTT MỤC LỤC I LÝ THUYẾT Thuật tốn gì? Tính chất, cách biểu diễn, độ phức tạp? Thế tốn tìm kiếm? (định nghĩa, đầu vào, đầu ra, mục đích, …) 3 Trình bày thuật tốn tìm kiếm tuyến tính (các bước, sơ đồ thuật tốn, độ phức tạp, …) 4 Bài toán xếp gì? (định nghĩa, đầu vào, đầu ra, mục đích, …) Trình bày thuật tốn xếp chọn trực tiếp (mơ tả thuật tốn, cài đặt, độ phức tạp, ví dụ) Trình bày thuật tốn xếp chèn (mơ tả thuật tốn, cài đặt, độ phức tạp, ví dụ) Trình bày thuật tốn xếp bọt (mơ tả thuật tốn, cài đặt, độ phức tạp, ví dụ) 8 Trình bày thuật tốn xếp đổi chỗ (mơ tả thuật tốn, cài đặt, độ phức tạp, ví dụ) 9 Trình bày thuật tốn xếp vun đống (heap-sort) (mơ tả thuật tốn, cài đặt, độ phức tạp, ví dụ) 10 10 Thế giải thuật đệ quy? Ưu, nhược điểm đệ quy? Cách khử đệ quy Ví dụ 11 11 Thế chiến lược vét cạn? Ưu, nhược điểm vét cạn? Ví dụ 12 12 Thế chiến lược quay lui? Ưu, nhược điểm quay lui? Ví dụ 12 13 Thế chiến lược chia để trị? Ưu, nhược điểm chia để trị? Ví dụ 13 14 Trình bày thuật tốn xếp nhanh (Quick-Sort)? (mơ tả thuật tốn, cài đặt, độ phức tạp, ví dụ) 13 15 Trình bày thuật tốn tìm kiếm nhị phân? (mơ tả thuật tốn, cài đặt, độ phức tạp, ví dụ) 15 16 Trình bày chiến lược quy hoạch động? Ưu, nhược điểm? Ví dụ 15 17 Trình bày tốn tìm dãy chung dài 16 18 Trình bày tốn nhân ma trận 17 19 Trình bày chiến lược tham lam Ưu, nhược điểm? Ví dụ 18 20 Trình bày tốn lịch kiện 18 II Bài tập: 19 Cho cấu trúc sinh viên gồm trường: tên, tuổi, địa chỉ, … Khai báo cấu trúc để lưu danh sách sinh viên theo mảng Cài đặt hàm xếp mảng sinh viên tăng dần (hoặc giảm dần) theo tuổi, tuổi theo tên Áp dụng giải thuật xếp chọn (hoặc chèn, bọt, đổi chỗ, …) 19 Cho cấu trúc nhân viên gồm trường: tên, năm sinh, hệ số lương, … Khai báo cấu trúc nhân viên dạng danh sách liên kết Cài đặt hàm xếp danh sách nhân viên tăng dần (hoặc giảm dần) theo năm sinh, năm sinh theo tên Áp dụng giải thuật xếp chọn (hoặc chèn, bọt, đổi chỗ, …) 21 Tác giả: Đỗ Đức Hùng Web: http://doduchung.co.cc Mail: doduchung2008@gmail.com |Trang ĐỀ CƯƠNG PTTK && ĐGTT Cho cấu trúc mặt hàng gồm: mã số, loại, tên, Khai báo cấu trúc mặt hàng (để lưu dạng mảng, dạng danh sách liên kết đơn) Cài đặt hàm tìm kiếm mặt hàng theo mã (hoặc tên, …) Nêu rõ giải thuật áp dụng 23 Cài đặt đánh giá độ phức tạp thuật toán in hoán vị n số nguyên từ đến n Các hoán vị in phải thỏa mãn tiêu chuẩn đó, ví dụ: tổng phần tử liên tiếp hoán vị số nguyên tố, tổng phần tử liên tiếp hoán vị số hoàn hảo, … 25 Cài đặt đánh giá độ phức tạp thuật toán in tất xâu nhị phân có độ dài k Xâu in phải thỏa mãn điều kiện đó, ví dụ: biểu diễn thập phân xâu số hồn hảo, số ngun tố, xâu khơng có phần tử liên tiếp giống nhau, xâu phải có ký tự liền kề không giống nhau, … 27 Cài đặt đánh giá độ phức tạp thuật tốn in số ngun có k chữ số Số in phải thỏa mãn điều kiện đó, ví dụ: số có tổng chữ số số nguyên tố, số hoàn hảo, chữ số phải khác nhau, … 28 Trình bày thuật tốn nhân dãy ma trận A Tìm số phép nhân để nhân ma trận có kích thước đó, ví dụ: 6x5, 5x7, 7x8, 8x3, 3x5 29 Trình bày thuật tốn tìm xâu chung dài hai xâu Áp dụng tìm xâu chung dài hai xâu sau: “CDADDADC”, “ACDDCCA” 32 III Cấu trúc đề thi học kỳ: (mỗi câu 2/10 điểm) 36 Tác giả: Đỗ Đức Hùng Web: http://doduchung.co.cc Mail: doduchung2008@gmail.com |Trang ĐỀ CƯƠNG PTTK && ĐGTT I LÝ THUYẾT Thuật toán gì? Tính chất, cách biểu diễn, độ phức tạp? a Thuật toán hệ thống đầy đủ rõ ràng quy tắc cho sau số hữu hạn bước thực thu mục tiêu đề b Tính chất: - Tính đắn: Nếu áp dụng thuật toán với liệu đầu vào phải cho kết - Tính dừng: Thuật tốn cần phải đảm bảo dừng sau số bước hữu hạn bước - Tính xác định: Các bước thuật tốn phải hiểu rõ ràng, cụ thể, tránh gây nhập nhằng nhầm lẫn người đọc hiểu, cài đặt thuật tốn - Tính hiệu quả: thuật tốn xem hiệu có khả giải hiệu toán đặt thời gian điều kiện cho phép thực tế đáp ứng yêu cầu người dùng - Tính phổ qt: thuật tốn giải lớp toán tương tự c Cách biểu diễn: có cách biểu diễn thuật tốn: - Mơ tả bước thực thuật toán - Sử dụng sơ đồ giải thuật d Độ phức tạp: Các tiêu chí đánh giá thuật tốn: + Thuật tốn đơn giản, dễ hiểu, dễ cài đặt + Dựa vào thời gian thực tài nguyên mà thuật toán sử dụng để thực liệu Thế tốn tìm kiếm? (định nghĩa, đầu vào, đầu ra, mục đích, …) Tìm kiếm vấn đề thuộc lĩnh vực nghiên cứu ngành khoa học máy tính ứng dụng rộng rãi thực tế Chúng ta quan tâm đến toán tìm kiếm mảng, danh sách phần tử kiểu Kết tìm kiếm vị trí phần tử thỏa mãn điều kiện tìm kiếm: có trường khóa với giá trị khóa cho trước Từ vị trí truy cập tới thông tin khác chứa trường liệu phần tử tìm thấy Nếu kết khơng tìm thấy giá trị trả Tác giả: Đỗ Đức Hùng Web: http://doduchung.co.cc Mail: doduchung2008@gmail.com |Trang ĐỀ CƯƠNG PTTK && ĐGTT gán cho giá trị đặc biệt tương đương với việc khơng tồn phần tử có vị trí đó: chẳng hạn – với mảng NULL với danh sách liên kết Có nhiều thuật tốn tìm kiếm như: tìm kiếm vét cạn, tìm kiếm tuần tự, tìm kiếm nhị phân, v.v.v v Trình bày thuật tốn tìm kiếm tuyến tính (các bước, sơ đồ thuật tốn, độ phức tạp, …) Các bước: - Duyệt qua phần tử mảng - Nếu tìm thấy phần tử có khóa khóa tìm kiếm trả vị trí phần tử Ngược lại khơng tìm thấy trả -1 Sơ đồ thuật toán: Độ phức tạp thuật tốn trường hợp trung bình tồi nhất: O(n) Trong trường hợp tốt thuật tốn có độ phức tạp O(1) Bài tốn xếp gì? (định nghĩa, đầu vào, đầu ra, mục đích, …) Sắp xếp trình xếp đặt ghi file theo thứ tự Cơ sở việc xếp đặt gọi khóa xếp (key) Hầu hết thuật toán xếp gịi thuật tốn xếp so sánh: chúng sử dụng thao tác so sánh đổi chỗ (swap) phần tử cần xếp Các toán xếp đơn giản chia thành: xếp (dữ liệu cần xếp lưu đầy đủ nhớ để thực thuật tốn xếp), xếp ngồi (Dữ liệu xếp Tác giả: Đỗ Đức Hùng Web: http://doduchung.co.cc Mail: doduchung2008@gmail.com |Trang ĐỀ CƯƠNG PTTK && ĐGTT có kích thước lớn lưu vào nhớ mà phải lưu nhớ đĩa từ, băng từ, trống từ, để xếp, thao tác truy cập liệu nhiều thời gian hơn), xếp gián tiếp (khi kích thước ghi lớn việc hoán đổi ghi tốn kém) Trình bày thuật tốn xếp chọn trực tiếp (mơ tả thuật tốn, cài đặt, độ phức tạp, ví dụ) Mơ tả thuật tốn: Tìm phần tử lớn (nhỏ nhất), đặt vào vị trí sau xếp phần cịn lại mảng Sơ đồ thuật toán: Cài đặt C: Tác giả: Đỗ Đức Hùng Web: http://doduchung.co.cc Mail: doduchung2008@gmail.com |Trang ĐỀ CƯƠNG PTTK && ĐGTT void selection_sort(int a[],int n) { int i,j,vtmin; for(i=0;inext; 82 } 83 } 84 void main() 85 { 86 listnode nv=NULL; 87 nhap(&nv); 88 xep(&nv); 89 xuat(&nv); 90 getch(); 91 } Cho cấu trúc mặt hàng gồm: mã số, loại, tên, Khai báo cấu trúc mặt hàng (để lưu dạng mảng, dạng danh sách liên kết đơn) Cài đặt hàm tìm kiếm mặt hàng theo mã (hoặc tên, …) Nêu rõ giải thuật áp dụng Áp dụng thuật toán vét cạn: #include #include typedef struct { int ms; char loai[10],ten[20]; }hang; void nhap(hang h[],int n) Tác giả: Đỗ Đức Hùng Web: http://doduchung.co.cc Mail: doduchung2008@gmail.com |Trang 23 ĐỀ CƯƠNG PTTK && ĐGTT { int i; for(i=0;i