Thông tin tài liệu
LỜI MỞ ĐẦU
Giáo trình thực hành này được viết theo giáo trình Lập trình nâng cao nhằm mục đích
làm tài liệu cho sinh viên năm thứ 2 thực hành môn học này. Nội dung của giáo trình
gồm 4 chương thể hiện cơ bản các kỹ thuật lập trình thường gặp đối với sinh viên.
Chương 1. Kỹ thuật lập trình đệ quy.
Chương 2. Sắp xếp.
Chương 3. Đại số ma trận.
Chương 4. Một số thuật giải trên đồ thị.
Chương 1 thể hiện một số kỹ thuật lập trình làm nền tảng cho các chương sau. Đối với
đệ quy phi tuyến chủ yếu ta sử dụng kỹ thuật tìm kiếm theo chiều sâu. Kỹ thuật này
được áp dụng trong chương 4 để tìm đường đi trên đồ thị. Tuy nhiên, ở đây ta chưa
trình bài kỹ thuật duyệt theo chiều sâu bằng cách khử đệ quy. Kỹ thuật này sẽ được
trình bài trong giáo trình Lý thuyết đồ thị và thuật giải.
Chương 2 thể hiện một số thuật toán sắp xếp nhằm giúp sinh viên so sánh và đánh giá
thuật toán sắp xếp nào sẽ tốt hơn.
Chương 3 thể hiện phương pháp giải hệ phương trình tuyến tính bằng phương pháp
phân rã ma trận bằng thuật toán Crout.
Chương 4 thể hiện một số thuật giải tìm đường đi cơ bản trên đồ thị áp dụng kỹ thuật
đánh dấu đỉnh, đánh dấu cạnh và kỹ thuật tham ăn.
Vì thời gian phân bố giảng dạy theo chương trình khung và nội dung của môn học này
nên giáo trình không tránh khỏi những khiếm khuyết. Rất mong nhận được sự góp ý
của tất cả các bạn quan tâm đến giáo trình này.
Ngày 24 tháng 04 năm 2010
Tác giả
MỤC LỤC
CHƯƠNG 1. KỸ THUẬT LẬP TRÌNH ĐỆ QUY 1
Bài tập 1. Tìm phần tử Fibonacci thứ n 1
Bài tập 2. Tính X lũy thừa n 1
Bài tập 3. Thuật toán Euclide tìm ước chung lớn nhất 2
Bài tập 4. Tìm ước chung lớn nhất của n số nguyên 3
Bài tập 5. Tính n giai thừa 4
Bài tập 6. Tổ hợp chập k của n phần tử 4
Bài tập 7. Tính tổng n phần tử trong danh sách 5
Bài tập 8. Đệ quy hỗ tương 6
Bài tập 9. Tích n phần tử trong danh sách 7
Bài tập 10. Đếm số lần xuất hiện của phần tử x trong danh sách 8
Bài tập 11. Tháp Hà Nội 9
Bài tập 12. Liệt kê tất cả dãy nhị phân độ dài k 10
Bài tập 13. Chỉnh hợp không lặp chập k của n phần tử 12
Bài tập 14. Hoán vị mảng số nguyên có n phần tử 14
Bài tập 15. Đặt n quân hậu trên bàn cờ vua 16
Bài tập 16. Mã đi tuần 18
CHƯƠNG 2. SẮP XẾP 20
Bài tập 1. Thuật toán Bubble Sort 20
Bài tập 2. Thuật toán Selection Sort 23
Bài tập 3. Thuật toán Insertion Sort 26
Bài tập 4. Thuật toán Quick Sort 28
Bài tập 5. Thuật toán Heap Sort 30
Bài tập 6. Thuật toán Merge Sort 34
CHƯƠNG 3. ĐẠI SỐ MA TRẬN 36
Bài tập 1. Nhập xuất ma trận 36
Bài tập 2. Một số phép toán trên ma trận 37
Bài tập 3. Hệ phương trình tuyến tính dạng tam giác trên 39
Bài tập 4. Hệ phương trình tuyến tính dạng tam giác dưới 41
Bài tập 5. Thuật toán phân rã ma trận A = LU 44
Bài tập 6. Giải hệ phương trình tuyến tính dựa vào phân rã LU 46
Bài tập 7. Định thức của ma trận 49
CHƯƠNG 4. MỘT SỐ THUẬT GIẢI TRÊN ĐỒ THỊ 51
Bài tập 1. Xét tính liên thông của đồ thị 51
Bài tập 2. Đếm số thành phần liên thông 53
Bài tập 3. Tìm mọi đường đi từ giữa hai đỉnh 56
Bài tập 4. Đường đi Hamilton 58
Bài tập 5. Đường đi Euler 61
Bài tập 6. Thuật toán Dijkstra tìm đường đi ngắn nhất 63
Bài tập 7. Thuật toán Prim tìm cây bao trùm tối tiểu 65
Bài tập 8. Thuật toán Kruskal tìm cây bao trùm tối tiểu 67
TÀI LIỆU THAM KHẢO 70
[...]... SẮP XẾP Bài tập 1 Thuật toán Bubble Sort Ý tưởng thuật toán: xuất phát từ phần tử cuối danh sách ta tiến hành so sánh với phần tử bên trái của nó Nếu phần tử đang xét có khóa nhỏ hơn phần tử bên trái của nó ta tiến đưa nó về bên trái của dãy bằng cách hoán vị với phần tử bên trái của nó Tiếp tục thực hiện như thế đối với bài toán có n phần tử thì sau n – 1 bước ta thu được danh sách tăng dần Ví dụ:... 12 Liệt kê tất cả dãy nhị phân độ dài k Chỉnh hợp lặp chập k của n phần tử là một nhóm có thứ tự gồm k phần tử lấy từ n phần tử đã cho, trong đó mỗi phần tử có thể có mặt 1, 2, …, k lần trong nhóm tạo thành Phương pháp: ta liệt kê tất cả chỉnh hợp có lặp chập k của hai phần tử 0 và 1 Khi đó ta sẽ có tất cả dãy nhị phân có độ dài k Ví dụ: minh họa dạng cây với k = 3 Cài đặt: #include "conio.h" #include... XuatMang(A,n); getch(); } Trang 33 Bài tập 6 Thuật toán Merge Sort Mô tả bài toán: cho 2 danh sách A và B lần lượt có m và n phần tử đã sắp xếp theo thứ tự Bài toán đặt ra trộn 2 danh sách A và B với nhau thành danh sách C cũng là một danh sách có thứ tự Thuật toán: Bước 1: khởi tạo ba chỉ số chạy trong vòng lặp i = 0, j = 0, k = 0 tương ứng cho ba mảng A, B và C Bước 2: tại mỗi bước nếu cả hai chỉ số (i . MỞ ĐẦU
Giáo trình thực hành này được viết theo giáo trình Lập trình nâng cao nhằm mục đích
làm tài liệu cho sinh viên năm thứ 2 thực hành môn học. này. Nội dung của giáo trình
gồm 4 chương thể hiện cơ bản các kỹ thuật lập trình thường gặp đối với sinh viên.
Chương 1. Kỹ thuật lập trình đệ quy.
Ngày đăng: 10/03/2014, 02:20
Xem thêm: Giáo trình thực hàn Lập trình nâng cao pdf, Giáo trình thực hàn Lập trình nâng cao pdf