SlideShare a Scribd company logo
1 of 30
INFOWORLD SCHOOL




                                         CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                   Số tiết lý thuyết + Số tiết thực hành:   60




                                                          1
Tài Liệu Tham Khảo

                                     Trần Hạnh Nhi, Dương Anh Đức. Giáo trình Cấu
                                      Trúc Dữ Liệu 1, ĐHQG Tp. HCM, 2000.

                                     Robert Sedgewick. Cẩm nang thuật toán (bản dịch
                                      của nhóm tác giả ĐH KHTN), NXB Khoa học kỹ thuật,
                                      1994.
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                     P. S. Deshpande, O. G. Kakde. C & Data Structures,
                                      2004.

                                     Dr. Dobb's. Algorithms and Data Structures, 1999

                                     A.V. Aho, J.E Hopcroft, J.D Ullman. Data structures
                                      and Algorithms, Addison Wesley, 1983.
                                                           2
Nội Dung Chương Trình

                                    Buổi 1: Giới thiệu về CTDL & Giải Thuật.

                                             Các thuật toán tìm kiếm.
                                    Buổi 2+3:     Interchange Sort, Selection Sort,
                                     Bubble        Sort, Insertion Sort.
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                    Buổi 4+5:     Shaker Sort, Shell Sort, Heap Sort.
                                    Buổi 6+7:     Quick Sort, MergeSort, Radix Sort.
                                    Buổi 8+9:     Cấu trúc động, Danh sách liên kết
                                     đơn.
                                                        3
Nội Dung Chương Trình

                                    Buổi 10+11:   Stack, Queue.
                                    Buổi 12+13:   Danh sách liên kết kép.
                                    Buổi 14+15:   Cây, Cây nhị phân, cây nhị phân
                                     tìm                kiếm.
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                    Buổi 16+17:   Cây cân bằng (AVL).
                                    Buổi 18+19: Các CTDL mở rộng.

                                    Buổi 20: Ôn tập.


                                                        4
Hình Thức Thi

                                     Giữa kỳ: 30 điểm

                                     Cuối kỳ: 50 điểm

                                     Chuyên cần: 20 điểm
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                     Bài cộng thêm điểm:

                                       Seminar, vấn đáp. Tối đa 20 điểm.

                                     Tổng điểm: 100 điểm.


                                                         5
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1   CHƯƠNG 1




                                          TỔNG QUAN VỀ CTDL VÀ THUẬT TOÁN
                                          TỔNG QUAN VỀ CTDL VÀ THUẬT TOÁN




                                                     6
Nội Dung

                                     Tổng quan về CTDL và thuật toán
                                     Các tiêu chuẩn của CTDL
                                     Vai trò của CTDL
                                     Độ phức tạp của thuật toán
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                     Thực hiện và hiệu chỉnh chương trình
                                     Tiêu chuẩn của chương trình




                                                         7
Khái Niệm Về CTDL Và Thuật Toán

                                     Niklaus Wirth:

                                      CTDL + Thuật toán = Chương trình

                                     Cần nghiên cứu về thuật toán và CTDL!
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                                         8
Sự Cần Thiết Của Thuật Toán

                                     Tại sao sử dụng máy tính để xử lý dữ liệu?
                                        Nhanh hơn.
                                        Nhiều hơn.
                                        Giải quyết những bài toán mà con người
                                          không thể hoàn thành được.
                                     Làm sao đạt được những mục tiêu đó?
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                        Nhờ vào sự tiến bộ của kỹ thuật: tăng cấu
                                          hình máy  chi phí cao 
                                        Nhờ vào các thuật toán hiệu quả: thông minh
                                          và chi phí thấp 
                                       “Một máy tính siêu hạng vẫn không thể cứu vãn một
                                                         thuật toán tồi!”
                                                          9
Thuật Toán

                                     Thuật toán: Một dãy hữu hạn các chỉ thị có thể
                                      thi hành để đạt mục tiêu đề ra nào đó.
                                     Ví dụ: Thuật toán tính tổng tất cả các số nguyên
                                      dương nhỏ hơn n gồm các bước sau:
                                       Bước 1: S=0, i=1;
                                       Bước 2: nếu i<n thì s=s+i;
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                                 Ngược lại: qua bước 4;
                                       Bước 3:
                                                 i=i+1;
                                                Quay lại bước 2;
                                       Bước 4: Tổng cần tìm là S.
                                                          10
Các Tiêu Chuẩn Của Thuật Toán

                                     Xác định

                                     Hữu hạn

                                     Đúng
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                     Tính hiệu quả

                                     Tính tổng quát




                                                       11
Biễu Diễn Thuật Toán

                                     Dạng ngôn ngữ tự nhiên

                                     Dạng lưu đồ (sơ đồ khối)

                                     Dạng mã giả
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                     Ngôn ngữ lập trình




                                                           12
Biểu Diễn Bằng Ngôn Ngữ Tự Nhiên

                                     NN tự nhiên thông qua các bước được tuần tự
                                      liệt kê để biễu diễn thuật toán.
                                     Ưu điểm:
                                        Đơn giản, không cần kiến thức về về cách
                                         biểu diễn (mã giả, lưu đồ,...)
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                     Nhược điểm:
                                        Dài dòng, không cấu trúc.
                                        Đôi lúc khó hiểu, không diễn đạt được thuật
                                         toán.

                                                         13
Lưu Đồ

                                     Là hệ thống các nút, cung hình dạng khác nhau
                                      thể hiện các chức năng khác nhau.

                                             A                        A
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                        Thực hiện A            Gọi hàm A           Vào / Ra dữ liệu


                                                        Đúng
                                              B                            Begin
                                                                                          End
                                                  Sai

                                                                          Nút giới hạn bắt đầu /
                                       Điều kiện rẻ nhánh B
                                                                          kết thúc chương trình


                                                                 14
Biểu Diễn Bằng Lưu Đồ

                                       Bắt đầu         amax = a0
                                                                          Tìm phần tử mang
                                                                          giá trị lớn nhất
                                         i= 1                             trong mảng

                                                   S   amax là lớn nhất         Kết thúc
                                          i<n
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                            Đ

                                       amax < ai   Đ
                                                               amax =ai

                                            S
                                        i = i+1
                                                          15
Biểu Diễn Bằng Mã Giả

                                     Ngôn ngữ tựa ngôn ngữ lập trình:
                                        Dùng cấu trúc chuẩn hóa, chẳng hạn tựa
                                         Pascal, C.
                                        Dùng các ký hiệu toán học, biến, hàm.
                                     Ưu điểm:
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                        Đỡ cồng kềnh hơn lưu đồ khối.
                                     Nhược điểm:
                                        Không trực quan bằng lưu đồ khối.


                                                         16
Biểu Diễn Bằng Mã Giả

                                     Một số quy ước
                                      1. Các biểu thức toán học
                                      2. Lệnh gán: “=” (AB)
                                      3. So sánh: “==”, “!=”
                                      4. Khai báo hàm (thuật toán)
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                         Thuật toán <tên TT> (<tham số>)
                                           Input: <dữ liệu vào>
                                           Output: <dữ liệu ra>
                                           <Các câu lệnh>
                                         End
                                                        17
Biểu Diễn Bằng Mã Giả

                                       5. Các cấu trúc:
                                               Cấu trúc chọn:
                                                            if … then … [else …] fi
                                               Vòng lặp:
                                                            while … do
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                                            do … while (…)
                                                            for … do … od
                                       6. Một số câu lệnh khác:
                                               Trả giá trị về: return [giá trị]
                                               Lời gọi hàm: <Tên>(tham số)
                                                          18
Biểu Diễn Bằng Mã Giả

                                     Ví dụ: Tìm phần tử lớn nhất trong mảng một
                                      chiều.

                                       amax=a0;
                                       i=1;
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                       while (i<n)
                                          if (amax<ai) amax = ai;
                                          i++;
                                       end while;

                                                                19
Biểu Diễn Bằng Ngôn Ngữ Lập Trình

                                     Dùng ngôn ngữ máy tính (C, Pascal,...) để diễn tả
                                      thuật toán, CTDL thành câu lệnh.
                                     Kỹ năng lập trình đòi hỏi cần học tập và thực
                                      hành (nhiều).
                                     Dùng phương pháp tinh chế từng bước để
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                      chuyển hoá bài toán sang mã chương trình cụ
                                      thể.




                                                          20
Độ Phức Tạp Của Thuật Toán

                                     Một thuật toán hiệu quả:
                                       Chi phí cần sử dụng tài nguyên thấp: Bộ nhớ,
                                         thời gian sử dụng CPU, …
                                     Phân tích độ phức tạp thuật toán:
                                       N là khối lượng dữ liệu cần xử lý.
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                       Mô tả độ phức tạp thuật toán qua một hàm
                                         f(N).
                                       Hai phương pháp đánh giá độ phức tạp của
                                         thuật toán:
                                           Phương pháp thực nghiệm.
                                           Phương pháp xấp xỉ toán học.
                                                         21
Phương Pháp Thực Nghiệm

                                     Cài thuật toán rồi chọn các bộ dữ liệu thử nghiệm.
                                     Thống kê các thông số nhận được khi chạy các
                                      bộ dữ liệu đó.
                                     Ưu điểm: Dễ thực hiện.
                                     Nhược điểm:
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                        Chịu sự hạn chế của ngôn ngữ lập trình.
                                        Ảnh hưởng bởi trình độ của người lập trình.
                                        Chọn được các bộ dữ liệu thử đặc trưng cho
                                         tất cả tập các dữ liệu vào của thuật toán: khó
                                         khăn và tốn nhiều chi phí.
                                        Phụ thuộc vào phần cứng.
                                                          22
Phương Pháp Xấp Xỉ

                                     Đánh giá giá thuật toán theo hướng tiệm xấp xỉ
                                      tiệm cận qua các khái niệm O().
                                     Ưu điểm: Ít phụ thuộc môi trường cũng như phần
                                      cứng hơn.
                                     Nhược điểm: Phức tạp.
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                     Các trường hợp độ phức tạp quan tâm:
                                        Trường hợp tốt nhất (phân tích chính xác)
                                        Trường hợp xấu nhất (phân tích chính xác)
                                        Trường hợp trung bình (mang tích dự đoán)
                                                          23
Sự Phân Lớp Theo Độ Phức Tạp Của Thuật Toán

                                     Sử dụng ký hiệu BigO
                                       Hằng số : O(c)
                                       logN      : O(logN)
                                      N          : O(N)
                                       NlogN     : O(NlogN)   Độ phức tạp tăng dần
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                       N2        :
                                                    O(N2)
                                       N3        :
                                                    O(N3)
                                       2N        :
                                                    O(2N)
                                       N!        :O(N!)

                                                       24
Dữ Liệu

                                     Theo từ điển Tiếng Việt: số liệu, tư liệu đã có,
                                      được dựa vào để giải quyết vấn đề

                                     Tin học: Biểu diễn các thông tin cần thiết cho bài
                                      toán.
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                                           25
Cấu Trúc Dữ Liệu

                                     Cách tổ chức lưu trữ dữ liệu.

                                     Các tiêu chuẩn của CTDL:

                                        Phải biểu diễn đầy đủ thông tin.
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                        Phải phù hợp với các thao tác trên đó.

                                        Phù hợp với điều kiện cho phép của NNLT.

                                        Tiết kiệm tài nguyên hệ thống.


                                                          26
Vai Trò Của Cấu Trúc Dữ Liệu

                                     Cấu trúc dữ liệu đóng vai trò quan trọng trong
                                      việc kết hợp và đưa ra cách giải quyết bài toán.

                                     CTDL hỗ trợ cho các thuật toán thao tác trên đối
                                      tượng được hiệu quả hơn
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                                          27
Thực Hiện Và Hiệu Chỉnh Chương Trình

                                     Chạy thử.
                                     Lỗi và cách sửa:
                                        Lỗi thuật toán.
                                        Lỗi trình tự.
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                        Lỗi cú pháp.
                                     Xây dựng bộ test.
                                     Cập nhật, thay đổi chương trình theo yêu cầu
                                      (mới).

                                                           28
Tiêu Chuẩn Của Một Chương Trình

                                     Tính tin cậy
                                        Giải thuật + Kiểm tra cài đặt
                                     Tính uyển chuyển
                                        Đáp ứng quy trình làm phần mềm.
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                     Tính trong sáng
                                        Dễ hiểu và dễ chỉnh sửa
                                     Tính hữu hiệu.
                                        Tài nguyên + giải thuật
                                                          29
Quy Trình Làm Phần Mềm

                                     Bước 0: Ý tưởng (concept).
                                     Bước 1: Xác định yêu cầu (Requirements
                                      Specification).
                                     Bước 2: Phân tích (Analysis).
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1




                                     Bước 3: Thiết kế (Design).
                                     Bước 4: Cài đặt (Implementation).
                                     Bước 5: Thử nghiệm (Testing).
                                     Bước 6: Vận hành, theo dõi và bảo dưỡng
                                          (Operation, follow-up and Maintenance).
                                                         30

More Related Content

What's hot

Ctdl 01 t_quan
Ctdl 01 t_quanCtdl 01 t_quan
Ctdl 01 t_quanLê Giang
 
[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan
[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan
[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quanFablab Hanoi
 

What's hot (6)

Chapter1234
Chapter1234Chapter1234
Chapter1234
 
Chapter1234
Chapter1234Chapter1234
Chapter1234
 
Lê thị thanh trúc
Lê thị thanh trúcLê thị thanh trúc
Lê thị thanh trúc
 
Ctdl 01 t_quan
Ctdl 01 t_quanCtdl 01 t_quan
Ctdl 01 t_quan
 
Chuong+1 2-3-4
Chuong+1 2-3-4Chuong+1 2-3-4
Chuong+1 2-3-4
 
[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan
[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan
[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan
 

Viewers also liked

Chuong 1. tong quan
Chuong 1. tong quanChuong 1. tong quan
Chuong 1. tong quanVũ Nam
 
Ctdl c1-tong quan
Ctdl c1-tong quanCtdl c1-tong quan
Ctdl c1-tong quanhiep0109
 
Chuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánChuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánduysu
 
Bai giang thuat toan tim kiem va sap xep
Bai giang thuat toan tim kiem va sap xepBai giang thuat toan tim kiem va sap xep
Bai giang thuat toan tim kiem va sap xeptran0phu
 
Slide 01
Slide 01Slide 01
Slide 01son468
 
Ctdl C03
Ctdl C03Ctdl C03
Ctdl C03giang
 
Gioi Thieu
Gioi ThieuGioi Thieu
Gioi Thieugiang
 
Ctdl C07
Ctdl C07Ctdl C07
Ctdl C07giang
 
Phần 1: Các khái niệm cơ bản về lập trình
Phần 1: Các khái niệm cơ bản về lập trìnhPhần 1: Các khái niệm cơ bản về lập trình
Phần 1: Các khái niệm cơ bản về lập trìnhHuy Rùa
 
Chuong 1 - CSDL phân tán
Chuong 1 - CSDL phân tánChuong 1 - CSDL phân tán
Chuong 1 - CSDL phân tánduysu
 
Bài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TIN
Bài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TINBài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TIN
Bài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TINMasterCode.vn
 
Knlvn 131209103120-phpapp02
Knlvn 131209103120-phpapp02Knlvn 131209103120-phpapp02
Knlvn 131209103120-phpapp02Nguyễn Quân
 
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTBài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTMasterCode.vn
 
Co so du lieu phan tan
Co so du lieu phan tanCo so du lieu phan tan
Co so du lieu phan tanThao Vu
 
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTBài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTMasterCode.vn
 

Viewers also liked (19)

Chuong 1. tong quan
Chuong 1. tong quanChuong 1. tong quan
Chuong 1. tong quan
 
Ctdl c1-tong quan
Ctdl c1-tong quanCtdl c1-tong quan
Ctdl c1-tong quan
 
Baigiang bai2 lop12_tiet2
Baigiang bai2 lop12_tiet2Baigiang bai2 lop12_tiet2
Baigiang bai2 lop12_tiet2
 
Chuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánChuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tán
 
Bai giang thuat toan tim kiem va sap xep
Bai giang thuat toan tim kiem va sap xepBai giang thuat toan tim kiem va sap xep
Bai giang thuat toan tim kiem va sap xep
 
Bai giang thiet_ke_mang
Bai giang thiet_ke_mangBai giang thiet_ke_mang
Bai giang thiet_ke_mang
 
Slide 01
Slide 01Slide 01
Slide 01
 
Dh Uml1
Dh Uml1Dh Uml1
Dh Uml1
 
Ctdl C03
Ctdl C03Ctdl C03
Ctdl C03
 
Gioi Thieu
Gioi ThieuGioi Thieu
Gioi Thieu
 
Ctdl C07
Ctdl C07Ctdl C07
Ctdl C07
 
Phần 1: Các khái niệm cơ bản về lập trình
Phần 1: Các khái niệm cơ bản về lập trìnhPhần 1: Các khái niệm cơ bản về lập trình
Phần 1: Các khái niệm cơ bản về lập trình
 
Chuong 1 - CSDL phân tán
Chuong 1 - CSDL phân tánChuong 1 - CSDL phân tán
Chuong 1 - CSDL phân tán
 
Bài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TIN
Bài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TINBài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TIN
Bài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TIN
 
Knlvn 131209103120-phpapp02
Knlvn 131209103120-phpapp02Knlvn 131209103120-phpapp02
Knlvn 131209103120-phpapp02
 
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTBài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
 
OKFN_OpenDataMx
OKFN_OpenDataMxOKFN_OpenDataMx
OKFN_OpenDataMx
 
Co so du lieu phan tan
Co so du lieu phan tanCo so du lieu phan tan
Co so du lieu phan tan
 
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTBài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
 

Similar to Ctdl 01 t_quan

CTDL&GT_01
CTDL&GT_01CTDL&GT_01
CTDL&GT_01kikihoho
 
bài giảng phân tích thiết kệ thống thông tin (hutech)
bài giảng phân tích thiết kệ thống thông tin (hutech)bài giảng phân tích thiết kệ thống thông tin (hutech)
bài giảng phân tích thiết kệ thống thông tin (hutech)truong le hung
 
Nhóm 24 bài 11:Cac_thao_tac_voi_CSDL/ThomPhanVan
Nhóm 24 bài 11:Cac_thao_tac_voi_CSDL/ThomPhanVanNhóm 24 bài 11:Cac_thao_tac_voi_CSDL/ThomPhanVan
Nhóm 24 bài 11:Cac_thao_tac_voi_CSDL/ThomPhanVanTIN D BÌNH THUẬN
 
Chau thihuynh c1_bai4_tiet2_tin10
Chau thihuynh c1_bai4_tiet2_tin10Chau thihuynh c1_bai4_tiet2_tin10
Chau thihuynh c1_bai4_tiet2_tin10Tin5VungTau
 
K33103253 pham hoang phuong-tin 5 cbt
K33103253 pham hoang phuong-tin 5 cbtK33103253 pham hoang phuong-tin 5 cbt
K33103253 pham hoang phuong-tin 5 cbtTin 5CBT
 
K3410301 tran le duy- bai 9-bao cao va ket xuat bao cao
K3410301  tran le duy- bai 9-bao cao va ket xuat bao caoK3410301  tran le duy- bai 9-bao cao va ket xuat bao cao
K3410301 tran le duy- bai 9-bao cao va ket xuat bao caoSP Tin K34
 
Kichban_Lop10_ chuong1 bai02_Tiết 1
Kichban_Lop10_ chuong1 bai02_Tiết 1Kichban_Lop10_ chuong1 bai02_Tiết 1
Kichban_Lop10_ chuong1 bai02_Tiết 1bachbangcung
 
K34103001 nhom 01
K34103001 nhom 01K34103001 nhom 01
K34103001 nhom 01SP Tin K34
 
Lê Thị Thu Thủy_một số khái niệm cơ bản - tin 12
Lê Thị Thu Thủy_một số khái niệm cơ bản - tin 12Lê Thị Thu Thủy_một số khái niệm cơ bản - tin 12
Lê Thị Thu Thủy_một số khái niệm cơ bản - tin 12Tin5VungTau
 
K34.tran minhtrang lop 10_chuong 2_bai 13_mot so he dieu hanh thong dung
K34.tran minhtrang lop 10_chuong 2_bai 13_mot so he dieu hanh thong dungK34.tran minhtrang lop 10_chuong 2_bai 13_mot so he dieu hanh thong dung
K34.tran minhtrang lop 10_chuong 2_bai 13_mot so he dieu hanh thong dungSP Tin K34
 
K33103245 NguyenthiMinhNghia
K33103245 NguyenthiMinhNghiaK33103245 NguyenthiMinhNghia
K33103245 NguyenthiMinhNghiaTin 5CBT
 
K33103349 my nhung_bai2_tin10
K33103349 my nhung_bai2_tin10K33103349 my nhung_bai2_tin10
K33103349 my nhung_bai2_tin10Tin5VungTau
 
K34103001 nhom 01
K34103001 nhom 01K34103001 nhom 01
K34103001 nhom 01SP Tin K34
 
Kịch bản dạy học bài 2
Kịch bản dạy học bài 2Kịch bản dạy học bài 2
Kịch bản dạy học bài 2Hòa Hoàng
 
Kịch bản dạy học bài 2
Kịch bản dạy học bài 2Kịch bản dạy học bài 2
Kịch bản dạy học bài 2Hòa Hoàng
 
Điểu khiển hạ độ cao vật bay sử dụng lý thuyết mờ và đại số gia tử.pdf
Điểu khiển hạ độ cao vật bay sử dụng lý thuyết mờ và đại số gia tử.pdfĐiểu khiển hạ độ cao vật bay sử dụng lý thuyết mờ và đại số gia tử.pdf
Điểu khiển hạ độ cao vật bay sử dụng lý thuyết mờ và đại số gia tử.pdfMan_Ebook
 
Kịch bản dạy học bài 2
Kịch bản dạy học bài 2Kịch bản dạy học bài 2
Kịch bản dạy học bài 2Hòa Hoàng
 
Thong bao tkb cac lop hoc lai dot 1 2013 (01-03-2013)
Thong bao tkb cac lop hoc lai dot 1 2013 (01-03-2013)Thong bao tkb cac lop hoc lai dot 1 2013 (01-03-2013)
Thong bao tkb cac lop hoc lai dot 1 2013 (01-03-2013)Nguyễn Văn Mạnh
 

Similar to Ctdl 01 t_quan (20)

Thdc 06
Thdc 06Thdc 06
Thdc 06
 
CTDL&GT_01
CTDL&GT_01CTDL&GT_01
CTDL&GT_01
 
bài giảng phân tích thiết kệ thống thông tin (hutech)
bài giảng phân tích thiết kệ thống thông tin (hutech)bài giảng phân tích thiết kệ thống thông tin (hutech)
bài giảng phân tích thiết kệ thống thông tin (hutech)
 
Nhóm 24 bài 11:Cac_thao_tac_voi_CSDL/ThomPhanVan
Nhóm 24 bài 11:Cac_thao_tac_voi_CSDL/ThomPhanVanNhóm 24 bài 11:Cac_thao_tac_voi_CSDL/ThomPhanVan
Nhóm 24 bài 11:Cac_thao_tac_voi_CSDL/ThomPhanVan
 
Chau thihuynh c1_bai4_tiet2_tin10
Chau thihuynh c1_bai4_tiet2_tin10Chau thihuynh c1_bai4_tiet2_tin10
Chau thihuynh c1_bai4_tiet2_tin10
 
K33103253 pham hoang phuong-tin 5 cbt
K33103253 pham hoang phuong-tin 5 cbtK33103253 pham hoang phuong-tin 5 cbt
K33103253 pham hoang phuong-tin 5 cbt
 
K3410301 tran le duy- bai 9-bao cao va ket xuat bao cao
K3410301  tran le duy- bai 9-bao cao va ket xuat bao caoK3410301  tran le duy- bai 9-bao cao va ket xuat bao cao
K3410301 tran le duy- bai 9-bao cao va ket xuat bao cao
 
Kichban_Lop10_ chuong1 bai02_Tiết 1
Kichban_Lop10_ chuong1 bai02_Tiết 1Kichban_Lop10_ chuong1 bai02_Tiết 1
Kichban_Lop10_ chuong1 bai02_Tiết 1
 
K34103001 nhom 01
K34103001 nhom 01K34103001 nhom 01
K34103001 nhom 01
 
Lê Thị Thu Thủy_một số khái niệm cơ bản - tin 12
Lê Thị Thu Thủy_một số khái niệm cơ bản - tin 12Lê Thị Thu Thủy_một số khái niệm cơ bản - tin 12
Lê Thị Thu Thủy_một số khái niệm cơ bản - tin 12
 
K34.tran minhtrang lop 10_chuong 2_bai 13_mot so he dieu hanh thong dung
K34.tran minhtrang lop 10_chuong 2_bai 13_mot so he dieu hanh thong dungK34.tran minhtrang lop 10_chuong 2_bai 13_mot so he dieu hanh thong dung
K34.tran minhtrang lop 10_chuong 2_bai 13_mot so he dieu hanh thong dung
 
K33103245 NguyenthiMinhNghia
K33103245 NguyenthiMinhNghiaK33103245 NguyenthiMinhNghia
K33103245 NguyenthiMinhNghia
 
K33103349 my nhung_bai2_tin10
K33103349 my nhung_bai2_tin10K33103349 my nhung_bai2_tin10
K33103349 my nhung_bai2_tin10
 
Nhom2
Nhom2Nhom2
Nhom2
 
K34103001 nhom 01
K34103001 nhom 01K34103001 nhom 01
K34103001 nhom 01
 
Kịch bản dạy học bài 2
Kịch bản dạy học bài 2Kịch bản dạy học bài 2
Kịch bản dạy học bài 2
 
Kịch bản dạy học bài 2
Kịch bản dạy học bài 2Kịch bản dạy học bài 2
Kịch bản dạy học bài 2
 
Điểu khiển hạ độ cao vật bay sử dụng lý thuyết mờ và đại số gia tử.pdf
Điểu khiển hạ độ cao vật bay sử dụng lý thuyết mờ và đại số gia tử.pdfĐiểu khiển hạ độ cao vật bay sử dụng lý thuyết mờ và đại số gia tử.pdf
Điểu khiển hạ độ cao vật bay sử dụng lý thuyết mờ và đại số gia tử.pdf
 
Kịch bản dạy học bài 2
Kịch bản dạy học bài 2Kịch bản dạy học bài 2
Kịch bản dạy học bài 2
 
Thong bao tkb cac lop hoc lai dot 1 2013 (01-03-2013)
Thong bao tkb cac lop hoc lai dot 1 2013 (01-03-2013)Thong bao tkb cac lop hoc lai dot 1 2013 (01-03-2013)
Thong bao tkb cac lop hoc lai dot 1 2013 (01-03-2013)
 

Ctdl 01 t_quan

  • 1. INFOWORLD SCHOOL CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Số tiết lý thuyết + Số tiết thực hành: 60 1
  • 2. Tài Liệu Tham Khảo  Trần Hạnh Nhi, Dương Anh Đức. Giáo trình Cấu Trúc Dữ Liệu 1, ĐHQG Tp. HCM, 2000.  Robert Sedgewick. Cẩm nang thuật toán (bản dịch của nhóm tác giả ĐH KHTN), NXB Khoa học kỹ thuật, 1994. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  P. S. Deshpande, O. G. Kakde. C & Data Structures, 2004.  Dr. Dobb's. Algorithms and Data Structures, 1999  A.V. Aho, J.E Hopcroft, J.D Ullman. Data structures and Algorithms, Addison Wesley, 1983. 2
  • 3. Nội Dung Chương Trình  Buổi 1: Giới thiệu về CTDL & Giải Thuật. Các thuật toán tìm kiếm.  Buổi 2+3: Interchange Sort, Selection Sort, Bubble Sort, Insertion Sort. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Buổi 4+5: Shaker Sort, Shell Sort, Heap Sort.  Buổi 6+7: Quick Sort, MergeSort, Radix Sort.  Buổi 8+9: Cấu trúc động, Danh sách liên kết đơn. 3
  • 4. Nội Dung Chương Trình  Buổi 10+11: Stack, Queue.  Buổi 12+13: Danh sách liên kết kép.  Buổi 14+15: Cây, Cây nhị phân, cây nhị phân tìm kiếm. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Buổi 16+17: Cây cân bằng (AVL).  Buổi 18+19: Các CTDL mở rộng.  Buổi 20: Ôn tập. 4
  • 5. Hình Thức Thi  Giữa kỳ: 30 điểm  Cuối kỳ: 50 điểm  Chuyên cần: 20 điểm CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Bài cộng thêm điểm: Seminar, vấn đáp. Tối đa 20 điểm.  Tổng điểm: 100 điểm. 5
  • 6. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 CHƯƠNG 1 TỔNG QUAN VỀ CTDL VÀ THUẬT TOÁN TỔNG QUAN VỀ CTDL VÀ THUẬT TOÁN 6
  • 7. Nội Dung  Tổng quan về CTDL và thuật toán  Các tiêu chuẩn của CTDL  Vai trò của CTDL  Độ phức tạp của thuật toán CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Thực hiện và hiệu chỉnh chương trình  Tiêu chuẩn của chương trình 7
  • 8. Khái Niệm Về CTDL Và Thuật Toán  Niklaus Wirth: CTDL + Thuật toán = Chương trình  Cần nghiên cứu về thuật toán và CTDL! CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 8
  • 9. Sự Cần Thiết Của Thuật Toán  Tại sao sử dụng máy tính để xử lý dữ liệu?  Nhanh hơn.  Nhiều hơn.  Giải quyết những bài toán mà con người không thể hoàn thành được.  Làm sao đạt được những mục tiêu đó? CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Nhờ vào sự tiến bộ của kỹ thuật: tăng cấu hình máy  chi phí cao   Nhờ vào các thuật toán hiệu quả: thông minh và chi phí thấp  “Một máy tính siêu hạng vẫn không thể cứu vãn một thuật toán tồi!” 9
  • 10. Thuật Toán  Thuật toán: Một dãy hữu hạn các chỉ thị có thể thi hành để đạt mục tiêu đề ra nào đó.  Ví dụ: Thuật toán tính tổng tất cả các số nguyên dương nhỏ hơn n gồm các bước sau: Bước 1: S=0, i=1; Bước 2: nếu i<n thì s=s+i; CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Ngược lại: qua bước 4; Bước 3: i=i+1; Quay lại bước 2; Bước 4: Tổng cần tìm là S. 10
  • 11. Các Tiêu Chuẩn Của Thuật Toán  Xác định  Hữu hạn  Đúng CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Tính hiệu quả  Tính tổng quát 11
  • 12. Biễu Diễn Thuật Toán  Dạng ngôn ngữ tự nhiên  Dạng lưu đồ (sơ đồ khối)  Dạng mã giả CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Ngôn ngữ lập trình 12
  • 13. Biểu Diễn Bằng Ngôn Ngữ Tự Nhiên  NN tự nhiên thông qua các bước được tuần tự liệt kê để biễu diễn thuật toán.  Ưu điểm:  Đơn giản, không cần kiến thức về về cách biểu diễn (mã giả, lưu đồ,...) CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Nhược điểm:  Dài dòng, không cấu trúc.  Đôi lúc khó hiểu, không diễn đạt được thuật toán. 13
  • 14. Lưu Đồ  Là hệ thống các nút, cung hình dạng khác nhau thể hiện các chức năng khác nhau. A A CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Thực hiện A Gọi hàm A Vào / Ra dữ liệu Đúng B Begin End Sai Nút giới hạn bắt đầu / Điều kiện rẻ nhánh B kết thúc chương trình 14
  • 15. Biểu Diễn Bằng Lưu Đồ Bắt đầu amax = a0 Tìm phần tử mang giá trị lớn nhất i= 1 trong mảng S amax là lớn nhất Kết thúc i<n CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Đ amax < ai Đ amax =ai S i = i+1 15
  • 16. Biểu Diễn Bằng Mã Giả  Ngôn ngữ tựa ngôn ngữ lập trình:  Dùng cấu trúc chuẩn hóa, chẳng hạn tựa Pascal, C.  Dùng các ký hiệu toán học, biến, hàm.  Ưu điểm: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Đỡ cồng kềnh hơn lưu đồ khối.  Nhược điểm:  Không trực quan bằng lưu đồ khối. 16
  • 17. Biểu Diễn Bằng Mã Giả  Một số quy ước 1. Các biểu thức toán học 2. Lệnh gán: “=” (AB) 3. So sánh: “==”, “!=” 4. Khai báo hàm (thuật toán) CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Thuật toán <tên TT> (<tham số>) Input: <dữ liệu vào> Output: <dữ liệu ra> <Các câu lệnh> End 17
  • 18. Biểu Diễn Bằng Mã Giả 5. Các cấu trúc: Cấu trúc chọn: if … then … [else …] fi Vòng lặp: while … do CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 do … while (…) for … do … od 6. Một số câu lệnh khác: Trả giá trị về: return [giá trị] Lời gọi hàm: <Tên>(tham số) 18
  • 19. Biểu Diễn Bằng Mã Giả  Ví dụ: Tìm phần tử lớn nhất trong mảng một chiều. amax=a0; i=1; CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 while (i<n) if (amax<ai) amax = ai; i++; end while; 19
  • 20. Biểu Diễn Bằng Ngôn Ngữ Lập Trình  Dùng ngôn ngữ máy tính (C, Pascal,...) để diễn tả thuật toán, CTDL thành câu lệnh.  Kỹ năng lập trình đòi hỏi cần học tập và thực hành (nhiều).  Dùng phương pháp tinh chế từng bước để CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 chuyển hoá bài toán sang mã chương trình cụ thể. 20
  • 21. Độ Phức Tạp Của Thuật Toán  Một thuật toán hiệu quả:  Chi phí cần sử dụng tài nguyên thấp: Bộ nhớ, thời gian sử dụng CPU, …  Phân tích độ phức tạp thuật toán:  N là khối lượng dữ liệu cần xử lý. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Mô tả độ phức tạp thuật toán qua một hàm f(N).  Hai phương pháp đánh giá độ phức tạp của thuật toán:  Phương pháp thực nghiệm.  Phương pháp xấp xỉ toán học. 21
  • 22. Phương Pháp Thực Nghiệm  Cài thuật toán rồi chọn các bộ dữ liệu thử nghiệm.  Thống kê các thông số nhận được khi chạy các bộ dữ liệu đó.  Ưu điểm: Dễ thực hiện.  Nhược điểm: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Chịu sự hạn chế của ngôn ngữ lập trình.  Ảnh hưởng bởi trình độ của người lập trình.  Chọn được các bộ dữ liệu thử đặc trưng cho tất cả tập các dữ liệu vào của thuật toán: khó khăn và tốn nhiều chi phí.  Phụ thuộc vào phần cứng. 22
  • 23. Phương Pháp Xấp Xỉ  Đánh giá giá thuật toán theo hướng tiệm xấp xỉ tiệm cận qua các khái niệm O().  Ưu điểm: Ít phụ thuộc môi trường cũng như phần cứng hơn.  Nhược điểm: Phức tạp. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Các trường hợp độ phức tạp quan tâm:  Trường hợp tốt nhất (phân tích chính xác)  Trường hợp xấu nhất (phân tích chính xác)  Trường hợp trung bình (mang tích dự đoán) 23
  • 24. Sự Phân Lớp Theo Độ Phức Tạp Của Thuật Toán  Sử dụng ký hiệu BigO  Hằng số : O(c)  logN : O(logN) N : O(N)  NlogN : O(NlogN) Độ phức tạp tăng dần CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  N2 : O(N2)  N3 : O(N3)  2N : O(2N)  N! :O(N!) 24
  • 25. Dữ Liệu  Theo từ điển Tiếng Việt: số liệu, tư liệu đã có, được dựa vào để giải quyết vấn đề  Tin học: Biểu diễn các thông tin cần thiết cho bài toán. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 25
  • 26. Cấu Trúc Dữ Liệu  Cách tổ chức lưu trữ dữ liệu.  Các tiêu chuẩn của CTDL:  Phải biểu diễn đầy đủ thông tin. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Phải phù hợp với các thao tác trên đó.  Phù hợp với điều kiện cho phép của NNLT.  Tiết kiệm tài nguyên hệ thống. 26
  • 27. Vai Trò Của Cấu Trúc Dữ Liệu  Cấu trúc dữ liệu đóng vai trò quan trọng trong việc kết hợp và đưa ra cách giải quyết bài toán.  CTDL hỗ trợ cho các thuật toán thao tác trên đối tượng được hiệu quả hơn CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 27
  • 28. Thực Hiện Và Hiệu Chỉnh Chương Trình  Chạy thử.  Lỗi và cách sửa:  Lỗi thuật toán.  Lỗi trình tự. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Lỗi cú pháp.  Xây dựng bộ test.  Cập nhật, thay đổi chương trình theo yêu cầu (mới). 28
  • 29. Tiêu Chuẩn Của Một Chương Trình  Tính tin cậy  Giải thuật + Kiểm tra cài đặt  Tính uyển chuyển  Đáp ứng quy trình làm phần mềm. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Tính trong sáng  Dễ hiểu và dễ chỉnh sửa  Tính hữu hiệu.  Tài nguyên + giải thuật 29
  • 30. Quy Trình Làm Phần Mềm  Bước 0: Ý tưởng (concept).  Bước 1: Xác định yêu cầu (Requirements Specification).  Bước 2: Phân tích (Analysis). CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1  Bước 3: Thiết kế (Design).  Bước 4: Cài đặt (Implementation).  Bước 5: Thử nghiệm (Testing).  Bước 6: Vận hành, theo dõi và bảo dưỡng (Operation, follow-up and Maintenance). 30