CẤU TRÚC DỮ LIỆU VÀ THUẬT TOÁN

95 351 0
CẤU TRÚC DỮ LIỆU VÀ THUẬT TOÁN

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CẤU TRÚC DỮ LIỆU VÀ THUẬT TOÁN DATA STRUCTURE AND ALGORITHMS 1 Chương 1: Ôn tập C/C++ Chương 1: Ôn tập C/C++ Tài liệu học tập  Giáo trình:  C & Data Structures, P. S. Deshpande, O. G. Kakde - CHARLES RIVER MEDIA, INC. Hingham, Massachusetts.  Tham khảo:  Giáo trình Cấu trúc dữ liệu 1, Trần Hạnh Nhi – Dương Anh Đức, Trường ĐHKHTN – ĐHQG TP.HCM.  Phần mềm lập trình:  C-Free  Borland C++ 2 Chương 1: Ôn tập C/C++ Chương 1: Ôn tập C/C++ Đánh giá kết quả 1. Kiểm tra giữa kỳ: thực hành  Điểm Kiểm tra giữa kỳ < 5  không được thi kết thúc môn  học lại 2. Kiểm tra cuối kỳ: thực hành  Điểm Kiểm tra cuối kỳ < 5  không được thi kết thúc môn  học lại 3. Bài tập lớn: làm bài tập trong module: bốc thăm  Điểm Đề tài < 5  không được thi kết thúc môn  học lại 4. Thi kết thúc môn: trắc nghiệm 5. Kiểm tra thường kỳ 3 Chương 1: Ôn tập C/C++ Chương 1: Ôn tập C/C++ Nội dung môn học  Chương 0: Giới thiệu chung  Chương 1: Ôn tập C/C++  Chương 2: Đệ quy (Recursion)  Chương 3: Tìm kiếm (Searching)  Chương 4: Sắp xếp (Sorting)  Chương 5: Ngăn xếp - Hàng đợi (Stacks - Queues)  Chương 6: Danh sách liên kết (Linked List)  Chương 7: Cây (Tree)  ÔN TẬP - KIỂM TRA (REVIEW – TEST) 4 Chương 0: Giới thiệu chung 5 Chương 1: Ôn tập C/C++ Chương 1: Ôn tập C/C++ Nội dung  Cấu trúc dữ liệu  Thuật toán  Độ phức tạp của thuật toán 6  Chương 1: Ôn tập C/C++ Chương 1: Ôn tập C/C++ Cấu trúc dữ liệu  (1) Sự tổ chức hợp lý của các thành phần dữ liệu,  (2) Tập các thao tác để truy cập các thành phần dữ liệu.  (1) the logical arrangement of data elements, combined with  (2) the set of operations we need to access the elements. 7 Chương 1: Ôn tập C/C++ Chương 1: Ôn tập C/C++ Ví dụ các cấu trúc dữ liệu  Mảng (array)  Danh sách liên kết (linked list)  Ngăn xếp (stack)  Hàng đợi (queue)  Cây (tree)  … 8 Chương 1: Ôn tập C/C++ Chương 1: Ôn tập C/C++ Nội dung  Cấu trúc dữ liệu  Thuật toán  Độ phức tạp của thuật toán 9  Chương 1: Ôn tập C/C++ Chương 1: Ôn tập C/C++ Thuật toán  Tập các bước có thể tính toán được để đạt được kết quả mong muốn  A computable set of steps to achieve a desired result 10 [...]... result[i][j]; } Chương 1: Ôn tập C/C++ Nội dung 18  Cấu trúc dữ liệu  Thuật toán  Độ phức tạp của thuật toán (algorithm complexity)  Chương 1: Ôn tập C/C++ Độ phức tạp của thuật toán 19  Phân tích thuật toán  Tính đúng  Tính đơn giản  Không gian  Thời gian chạy của thuật toán Chương 1: Ôn tập C/C++ Độ phức tạp của thuật toán 20  Thời gian chạy của thuật toán  Đánh giá như thế nào  Thực nghiệm ... phức tạp của thuật toán 21  Thực nghiệm  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 cài đặt  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 nhiều vào phần cứng Chương 1: Ôn tập C/C++ Độ phức tạp của thuật toán 22  Xấp xỉ tiệm cận  Cách thông dụng nhất để đánh giá một thuật toán là ký hiệu... tạp của thuật toán 24  Một số lớp thuật toán Chương 1: Ôn tập C/C++ Độ phức tạp của thuật toán 25  Một số lớp thuật toán O(log2n)   O(n)   O(nlog2n)   O(n2 )   O( nk )  O(2 )  n!  n ® phøc t¹ p ® thøc  chÊ nhË ® î c é a p n ­ ® phøc t¹p cao  khã chÊ nhË é p n Chương 1: Ôn tập C/C++ Độ phức tạp của thuật toán 26  Một số lớp thuật toán Chương 1: Ôn tập C/C++ Độ phức tạp của thuật toán 27... 8 9 10 11 12  Cấu trúc chương trình C/C++ Các cú pháp cơ bản Địa chỉ (Address) Con trỏ (Pointer) Mảng (Array) Mảng con trỏ (Pointer array) Mảng hai chiều (Two-dimensional array) Cấu trúc (Structure) Con trỏ cấu trúc (Structure pointer) Chuỗi (String) Tập tin (File) Hàm (Function) 33 2 Các cú pháp cơ bản 34  Khai báo biến: Kiểu _dữ_ liệu tên_biến;  Khai báo và khởi tạo biến: Kiểu _dữ_ liệu tên_biến =... Chương 1: Ôn tập C/C++  1 2 3 4 5 6 7 8 9 10 11 12 Cấu trúc chương trình C/C++ Các cú pháp cơ bản Địa chỉ (Address) Con trỏ (Pointer) Mảng (Array) Mảng con trỏ (Pointer array) Mảng hai chiều (Two-dimensional array) Cấu trúc (Structure) Con trỏ cấu trúc (Structure pointer) Chuỗi (String) Tập tin (File) Hàm (Function) 29 1 Cấu trúc chương trình C/C++ 30 Cấu trúc chương trình C #include “stdio.h” #include... Big-O  Định nghĩa toán học của Big-O: Cho f và g là hai hàm từ tập các số nguyên hoặc số thực đến số thực Ta nói f(x) là O(g(x)) nếu tồn tại hằng số C và k sao cho: |f(x)| ≤ C |g(x)| với mọi x > k  Ví dụ, hàm f(x) = x2+ 3x + 2 là O(x2) Thật vậy, khi x > 2 thì x < x2 và 2 < 2x2 Do đó x2 + 3x + 2 < 6x2 Nghĩa là ta chọn được C = 6 và k = 2 Chương 1: Ôn tập C/C++ Độ phức tạp của thuật toán 23  Một số... “%d”, a ); getch(); } Chương 1: Ôn tập C/C++ 1 Cấu trúc chương trình C/C++ 31 Cấu trúc chương trình C++ #include “iostream.h” #include “conio.h” void main() /*ham chinh*/ { int a=7; cout . dung  Cấu trúc dữ liệu  Thuật toán  Độ phức tạp của thuật toán 6  Chương 1: Ôn tập C/C++ Chương 1: Ôn tập C/C++ Cấu trúc dữ liệu  (1) Sự tổ chức hợp lý của các thành phần dữ liệu, . C/C++ Nội dung  Cấu trúc dữ liệu  Thuật toán  Độ phức tạp của thuật toán 9  Chương 1: Ôn tập C/C++ Chương 1: Ôn tập C/C++ Thuật toán  Tập các bước có thể tính toán được để đạt được.  Cấu trúc dữ liệu  Thuật toán  Độ phức tạp của thuật toán (algorithm complexity) 18  Chương 1: Ôn tập C/C++ Chương 1: Ôn tập C/C++ 19 Độ phức tạp của thuật toán  Phân tích thuật

Ngày đăng: 28/04/2015, 11:38

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan