Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 1: Giới thiệu chung trình bày đôi nét về khái niệm về cấu trúc dữ liệu và giải thuật, giải thuật, dữ liệu và các cấu trúc dữ liệu, biểu diễn giải thuật, độ phức tạp của giải thuật.
Cấu trúc liệu giải thuật Bài Giới thiệu chung Lecturer: Dr Ngo Huu Phuc Tel: 0438 326 077 Mob: 098 5696 580 Email: ngohuuphuc76@gmail.com @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University Tài liệu tham khảo Mastering Algorithms with C, Kyle Loudon, 1999 Introduction to Algorithms, Thomas H Cormen, Charles E Leiserson, Ronald L Rivest and Clifford Stein, The MIT Press © 2001 Data Structures, Algorithms, and Object-Oriented Programming NXB McGraw Hill; Tác giả Gregory Heilleman -1996 Cấu trúc liệu giải thuật, Đỗ Xuân Lôi @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University Bài Giới thiệu Nội dung: 1.0 Đôi nét khái niệm 1.1 Giải thuật 1.2 Dữ liệu cấu trúc liệu 1.3 Biểu diễn giải thuật 1.4 Độ phức tạp giải thuật Tham khảo: Elliz Horowitz - Fundamentals of data structures, Chapter 1: Introduction @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University 1.0 Đôi nét khái niệm Để giải tốn, câu hỏi “phải làm gì?”, sau trả lời câu hỏi “làm nào?” → cách tiếp cận đến giải thuật cấu trúc liệu Các toán thực tế không dễ giải cách hiểu thông thường để giảm độ phức tạp, nhiều trường hợp mơ hình hóa tốn Từ việc mơ hình hóa, thực tế thấy có nhiều tốn có mơ hình hóa @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University 1.0.1 Một số ví dụ (1) Ví dụ 1: Tơ màu đồ giới Yêu cầu: Ta c ần phải tô màu cho nước đồ giới Trong nước tơ màu Hai nước láng giềng (cùng biên giới) phải tô hai màu khác Hãy tìm phương án tơ màu cho số màu sử dụng @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University 1.0.2 Một số ví dụ (2) Hướng giải mơ hình hóa: Ta có th ể xem nước đồ giới đỉnh đồ thị Hai nước láng giềng hai đỉnh ứng với nối với cạnh Bài tốn lúc trở thành tốn tơ màu cho đồ thị sau: Mỗi đỉnh phải tơ màu Hai đỉnh có cạnh nối phải tơ hai màu khác Cần tìm phương án tô màu cho số màu sử dụng @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University 1.0.3 Một số ví dụ (3) Ví dụ 2: Đèn giao thơng Cho ngã năm hình C E đường chiều theo chiều mũi tên Các đường khác hai chiều Hãy thiết kế bảng đèn hiệu điều khiển giao thông ngã năm cách hợp lý: cho: Phân chia lối ngã năm thành nhóm Mỗi nhóm gồm lối đi đồng thời không xảy tai nạn giao thông (các hướng không cắt nhau), Và số lượng nhóm @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University 1.0.4 Hướng giải (VD2) Ta xem đầu vào (input) toán tất lối ngã năm Đầu (output) tốn nhóm lối đi đồng thời mà không xảy tai nạn giao thơng Mỗi nhóm tương ứng với pha điều khiển đèn hiệu, ta phải tìm kiếm lời giải với số nhóm để giao thơng khơng bị tắc nghẽn phải chờ đợi lâu @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University 1.0.4 Hướng giải (VD2) (t) Trước hết ta nhận thấy ngã năm có 13 lối đi: AB, AC, AD, BA, BC, BD, DA, DB, DC, EA, EB, EC, ED Thể lối đồng thời Ví dụ cặp AB EC đồng thời, AD EB khơng, hướng giao thông cắt Sử dụng sơ đồ trực quan: Tên 13 lối viết lên mặt phẳng, Hai lối đồng thời xảy đụng (tức hai hướng cắt qua nhau) ta nối lại đoạn thẳng Ta có sơ đồ hình Như vậy, sơ đồ này, hai lối có cạnh nối lại với hai lối cho đồng thời @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University Hình 10 @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University 1.2.3 Miền xác định liệu • Miền xác định liệu thường ký hiệu D • Ví dụ: Với kiểu bool, D = {0, 1} • Ví dụ: Với kiểu int , D = {0, 1, 2, } • Với ký tự xâu ký tự, D = {' ','A','B', .,'Z',”AA” } • Như vậy, D hữu hạn vơ hạn, cần xác định kiểu liệu phù hợp với giải thuật 26 @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University 1.2.4 Các cấu trúc liệu Một cấu trúc liệu là: Miền D, xác định rõ, Tập hàm F, Tập “tiên đề” X Như vậy, (D, F, X) xác định cấu trúc liệu d 27 @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University 1.2.5 Sự thực thi liệu Sự thực thi cấu trúc liệu ánh xạ cấu trúc liệu d vào cấu trúc liệu có trước Ví dụ: số ngun biểu diễn chuỗi bít Ví dụ: kiểu boolean định nghĩa số Ví dụ: mảng định nghĩa ô nhớ liên tục nhớ… 28 @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University 1.3 Biểu diễn thuật tốn Có nhiều cách khác để biểu diễn giải thuật, thông thường, có cách: 1.3.1 Biểu diễn cách liệt kê bước; 1.3.2 Biểu diễn sơ đồ khối; 1.3.3 Biểu diễn giả mã lệnh 29 @Copyrights by Dr Ngo Huu Phuc, Le Quy Don Technical University 1.3.1 Biểu diễn giải thuật liệt kê bước Liệt kê bước cần phải thực ngôn ngữ tự nhiên VD 1: Thuật tốn tìm số lớn số a,b,c Giả thiết số lớn a: Max=a Nếu Max