Tìm hiểu khái niệm cấu trúc dữ liệu
Dữ liệu, Cấu trúc dữ liệu
Các kiểu cấu trúc dữ liệu
Tìm hiểu khái niệm giải thuật (thuật toán, thuật giải)
Khái niệm về giải thuật
Biểu diễn giải thuật
Độ phức tạp của giải thuật
Mối liên hệ giữa cấu trúc dữ liệu và giải thuật
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTMasterCode.vn
Tìm hiểu các giải thuật sắp xếp cơ bản trên cấu trúc dữ
liệu mảng
Tìm hiểu các giải thuật tìm kiếm cơ bản trên cấu trúc dữ
liệu mảng
Đánh giá và so sánh hiệu quả các giải thuật
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTMasterCode.vn
Tìm hiểu 3 cấu trúc dữ liệu đặc biệt: Ngăn xếp (Stack),
Hàng đợi (Queue) và Cây (Tree):
Khái niệm
Cách cài đặt trong VB.Net
Các thao tác cơ bản trên các cấu trúc dữ liệu
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTMasterCode.vn
Tìm hiểu các giải thuật sắp xếp cơ bản trên cấu trúc dữ
liệu mảng
Tìm hiểu các giải thuật tìm kiếm cơ bản trên cấu trúc dữ
liệu mảng
Đánh giá và so sánh hiệu quả các giải thuật
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTMasterCode.vn
Tìm hiểu 3 cấu trúc dữ liệu đặc biệt: Ngăn xếp (Stack),
Hàng đợi (Queue) và Cây (Tree):
Khái niệm
Cách cài đặt trong VB.Net
Các thao tác cơ bản trên các cấu trúc dữ liệu
Phụ thuộc hàm và các dạng chuẩn - dhcnttanhhuycan83
Ôn tập cơ sở dữ liệu tuyển sinh cao học ĐHCNTT. Giáo trình của thầy PGS.TS. Đỗ Phúc. Khoa Hệ thống thông tin
Phần 2: Phụ thuộc hàm và các dạng chuẩn
( Functional Dependency and Normal Forms) - 2009
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTMasterCode.vn
Tìm hiểu các bước thiết kế CSDL quan hệ
Tìm hiểu các khái niệm trong thiết kế CSDL quan hệ:
Các khái niệm trong thiết kế CSDL mức khái niệm
Các khái niệm trong thiết kế CSDL mức vật lý
Làm quen với hệ quản trị CSDL Microsoft Access
Tạo các bảng và truy vấn trong Microsoft Access.
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTMasterCode.vn
Tìm hiểu về danh sách liên kết (Linked List):
Khái niệm danh sách liên kết
Các thao tác trên danh sách liên kết
Tìm hiểu về Set (tập hợp):
Định nghĩa Set
Các đặc trưng
Cách cài đặt Set bằng VB.Net
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...MasterCode.vn
Xây dựng lớp, cấu trúc
Tạo và sử dụng đối tượng
Xây dựng lớp kế thừa
Khái niệm đa hình và sử dụng đa hình
Sử dụng các lớp và đối tượng dựng sẵn
Collection
Tự sinh mã khai báo
Mục tiêu bài học
Xây dựng lớp, cấu trúc
Tạo và sử dụng đối tượng
Xây dựng lớp kế thừa
Khái niệm đa hình và sử dụng đa hình
Sử dụng các lớp và đối tượng dựng sẵn
Collection
Tự sinh mã khai báo
Tìm hiểu về cách sử dụng mảng thông thường trong
VB.Net
Tìm hiểu về lớp ArrayList và cách sử dụng trong VB.Net
So sánh mảng thông thường và ArrayList
Áp dụng việc đo thời gian thực hiện lệnh
Phụ thuộc hàm và các dạng chuẩn - dhcnttanhhuycan83
Ôn tập cơ sở dữ liệu tuyển sinh cao học ĐHCNTT. Giáo trình của thầy PGS.TS. Đỗ Phúc. Khoa Hệ thống thông tin
Phần 2: Phụ thuộc hàm và các dạng chuẩn
( Functional Dependency and Normal Forms) - 2009
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTMasterCode.vn
Tìm hiểu các bước thiết kế CSDL quan hệ
Tìm hiểu các khái niệm trong thiết kế CSDL quan hệ:
Các khái niệm trong thiết kế CSDL mức khái niệm
Các khái niệm trong thiết kế CSDL mức vật lý
Làm quen với hệ quản trị CSDL Microsoft Access
Tạo các bảng và truy vấn trong Microsoft Access.
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTMasterCode.vn
Tìm hiểu về danh sách liên kết (Linked List):
Khái niệm danh sách liên kết
Các thao tác trên danh sách liên kết
Tìm hiểu về Set (tập hợp):
Định nghĩa Set
Các đặc trưng
Cách cài đặt Set bằng VB.Net
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...MasterCode.vn
Xây dựng lớp, cấu trúc
Tạo và sử dụng đối tượng
Xây dựng lớp kế thừa
Khái niệm đa hình và sử dụng đa hình
Sử dụng các lớp và đối tượng dựng sẵn
Collection
Tự sinh mã khai báo
Mục tiêu bài học
Xây dựng lớp, cấu trúc
Tạo và sử dụng đối tượng
Xây dựng lớp kế thừa
Khái niệm đa hình và sử dụng đa hình
Sử dụng các lớp và đối tượng dựng sẵn
Collection
Tự sinh mã khai báo
Tìm hiểu về cách sử dụng mảng thông thường trong
VB.Net
Tìm hiểu về lớp ArrayList và cách sử dụng trong VB.Net
So sánh mảng thông thường và ArrayList
Áp dụng việc đo thời gian thực hiện lệnh
Dù bạn là ai, dù mục đích học tiếng Anh của bạn đơn thuần chỉ là có tấm bằng trong tay để xin việc hay cao siêu hơn là có thể nói thông viết thạo thì việc nằm lòng các ngữ pháp tiếng Anh ẩn chứa sức mạnh ghê gớm dưới đây cũng là bước cơ bản giúp bạn master tiếng Anh
Scalability and optimization are constant
concerns for the developer and operations
manager. The Performance Zone focuses on
all things performance, covering everything
from database optimization to garbage
collection, tool and technique comparisons,
and tweaks to keep your code as effcient
as possible.
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnMasterCode.vn
Các doanh nghiệp cần luôn có mặt trên online để khách hàng dễ dàng thấy họ mỗi khi tìm kiếm. "Mùa vụ" hay giai đoạn mà lượng
tìm kiếm về sản phẩm dịch vụ của doanh nghiệp trên Google bỗng gia tăng chính là thời điểm tuyệt vời để tận dụng.Các doanh nghiệp
có thể tối đa hoá doanh thu trong thời kì cao điểm này bằng cách lên chiến lược quảng cáo "luôn online" gắn liền với mục tiêu mùa.
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
Lập trình sáng tạo bao gồm việc sáng tạo. Khoa học máy tính và các ngành liên quan tới tính toán đã từ lâu đƣợc giới thiệu tới những ngƣời trẻ tuổi một cách rời rạc – quá nhấn mạnh kĩ thuật so với khả năng sáng tạo. Lập trình sáng tạo giúp cho sự phát triển của cá nhân đối với tính toán trở nên tốt hơn, bằng cách hỗ trợ vẽ vời dựa trên sáng tạo, tƣởng tƣợng, và sở thích.
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnMasterCode.vn
Meta Tag là thẻ dùng để cung cấp các thông tin về website một cách tóm gọn đối với các trình duyệt lẫn người dùng hay bot từ các search engine. Mọi người hay nghe Meta Keyword, Meta Description, Meta Page title,..
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnMasterCode.vn
Google Webmaster Tools • Google Analytics phân tích traffic • SEO Power Suite , web auditor đ onpage • Ahrefs, phân tích t khóa và Link • OpenSiteExplorer phân tích link profile • Firexfox Extensions: SEO Doctor cho onpage, NoDofollow • SEOMoz Toolbar đ check PA và DA •Free Monitor for Google đ check RANK •SEOMOZ pro check onpage
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnMasterCode.vn
Cơ chế hoạt động Google Tên miền Cấu trúc website Meta Tag (Title, Description, H1-H6, ALT...) URL thân thiện, Sitemap, robots.txt Keyword Density Tốc độ tải trang
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Những chú ý đặc biệt khi hỗ trợ người dùng máy tính xách tay Cài đặt, cấu hình, tối ưu, sửa chữa các thiết bị ngoại vi hay dùng với máy tính xách tay Nâng cấp, thay thế các thiết bị máy tính xách tay Nguyên lý hoạt động của máy in Cài đặt máy in
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Tìm hiểu các quy trình xử lý đảm bảo an toàn Tìm hiểu phương pháp bảo trì phòng ngừa cho máy tính cá nhân Tìm hiểu cách phát hiện và xử lý sự cố máy tính
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Đưa ra kế hoạch bảo trì phòng ngừa Rà soát các thiết lập Windows trọng yếu Làm sạch ổ cứng Chống phân mảnh ổ đĩa Kiểm tra lỗi ổ cứng Rà soát các chương trình khởi động và dịch vụ Tiến hành các thủ tục sao lưu Lập kế hoạch khắc phục thảm họa Sao lưu dữ liệu người dùng / toàn bộ ổ cứng Tối ưu Windows Các công cụ tối ưu: Task Manager, MSConfig, Services Console, Computer Management Cải thiện hiệu năng Windows Đưa ra kế hoạch bảo trì phòng ngừa Rà soát các thiết lập Windows trọng yếu Làm sạch ổ cứng Chống phân mảnh ổ đĩa Kiểm tra lỗi ổ cứng Rà soát các chương trình khởi động và dịch vụ Tiến hành các thủ tục sao lưu Lập kế hoạch khắc phục thảm họa Sao lưu dữ liệu người dùng / toàn bộ ổ cứng Tối ưu Windows Các công cụ tối ưu: Task Manager, MSConfig, Services Console, Computer Management Cải thiện hiệu năng Windows
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Biết được các công nghệ chế tạo ổ cứng Hiểu được cấu tạo ổ cứng Phân biệt rõ các chuẩn giao tiếp giữa hệ thống với ổ cứng Thông hiểu cách tổ chức lưu trữ dữ liệu trong ổ cứng Giải quyết các vấn đề liên quan đến ổ cứng Biết được các công nghệ chế tạo ổ cứng Hiểu được cấu tạo ổ cứng Phân biệt rõ các chuẩn giao tiếp giữa hệ thống với ổ cứng Thông hiểu cách tổ chức lưu trữ dữ liệu trong ổ cứng Giải quyết các vấn đề liên quan đến ổ cứng
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Nhận biết được đặc điểm và thông số kỹ thuật của các CPU dùng cho máy tính cá nhân Thông hiểu cách lựa chọn CPU cho hệ thống Thông hiểu cách lắp mới và thay thế CPU Thông hiểu các phương pháp tản nhiệt cho CPU Thông hiểu các loại RAM khác nhau và nguyên lý hoạt động của chúng. Thông hiểu các vấn đề cần thiết khi nâng cấp RAM
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Nhắc lại các khái niệm cơ bản về phần cứng và phần mềm. Giới thiệu về các thành phần của máy tính. Nắm được vị trí sắp xếp của các thành phần bên trong case, các loại case khác nhau. Nắm được các thông số về nguồn điện được sử dụng để vận hành hệ thống máy tính. Ước lượng công suất của hệ thống và chọn bộ cấp nguồn và thiết bị lưu điện cho phù hợp. Nhận biết và xử lý một số vấn đề thường gặp liên quan đến nguồn điện
2. Tìm hiểu khái niệm cấu trúc dữ liệu
Dữ liệu, Cấu trúc dữ liệu
Các kiểu cấu trúc dữ liệu
Tìm hiểu khái niệm giải thuật (thuật toán, thuật giải)
Khái niệm về giải thuật
Biểu diễn giải thuật
Độ phức tạp của giải thuật
Mối liên hệ giữa cấu trúc dữ liệu và giải thuật
Mục tiêu bài học hôm nay
2Slide 1 - Tổng quan về CTDL và GT
3. Tại sao sử dụng máy tính để xử lý dữ liệu
Nhanh hơn, chính xác hơn
Giải quyết nhiều bài toán đòi hỏi khối lượng tính toán cực lớn,
hoặc những bài toán phức tạp với khối lượng dữ liệu lớn
Phương pháp?
Nhờ vào các thuật toán hiệu quả, thông minh -> chi phí thấp
Nhờ vào sự nâng cấp cấu hình máy -> chi phí cao
Dữ liệu và Giải thuật
3Slide 1 - Tổng quan về CTDL và GT
4. Trong tin học: Dữ liệu để biểu diễn các thông tin cần thiết
cho bài toán.
Các dữ liệu máy tính gồm: dữ liệu đầu vào, dữ liệu trung
gian, dữ liệu đầu ra.
Khái niệm Dữ liệu
4Slide 1 - Tổng quan về CTDL và GT
5. Cấu trúc dữ liệu là gì?
5
Hình các cuốn sách chưa được tổ chức,
sắp xếp
Hình các cuốn sách đã được tổ chức, sắp
xếp
Slide 1 - Tổng quan về CTDL và GT
6. Một ví dụ về Cấu trúc
6
Hình các số nguyên chưa được tổ chức
Hình các số nguyên đã được tổ chức
trong một mảng
Slide 1 - Tổng quan về CTDL và GT
7. Cấu trúc dữ liệu là gì?
Cấu trúc dữ liệu (data structure) là một phương thức cụ thể để
lưu trữ và tổ chức dữ liệu trong máy tính để việc xử lý hiệu
quả.
Khái niệm Cấu trúc dữ liệu
7Slide 1 - Tổng quan về CTDL và GT
8. Dữ liệu không có cấu trúc (kiểu dữ liệu đơn hay còn gọi
là kiểu dữ liệu cơ sở):
Mỗi đối tượng dữ liệu là một phần tử đơn lẻ
Ví dụ: Integer, Char, Boolean,…
Dữ liệu có cấu trúc:
Được cấu thành bởi các phần tử dữ liệu cơ sở
Ví dụ: Mảng (array), chuỗi (string), danh sách (collection), bản
ghi (record), đối tượng (object)
Các kiểu cấu trúc dữ liệu
8Slide 1 - Tổng quan về CTDL và GT
9. Ví dụ: một số kiểu dữ liệu cơ sở được định nghĩa trong
Visual Basic:
Kiểu dữ liệu cơ sở
9Slide 1 - Tổng quan về CTDL và GT
Tên kiểu Kích thước Miền giá trị
Byte 1 byte 0 -> 255 (không dấu)
Boolean Tùy thuộc vào nền tảng
(thường là 1 byte)
True hoặc False
Integer 4 byte -2,147,483,648 -> 2,147,483,647
(có dấu)
Long 8 byte -9,223,372,036,854,775,808 ->
9,223,372,036,854,775,807
(9.2...E+18 †) (có dấu)
Date 8 byte 0:00:00 ngày 1/1/0001 tới 11:59:59
ngày 31/12/9999
Char 2 byte 0 -> 65535 (không dấu)
10. Kiểu chuỗi kí tự:
Ví dụ: chuỗi kí tự “BOOKS”
Kiểu dữ liệu có cấu trúc
10Slide 1 - Tổng quan về CTDL và GT
11. Kiểu mảng (array):
Ví dụ mảng 1 chiều
Ví dụ mảng 2 chiều
Kiểu dữ liệu có cấu trúc
11Slide 1 - Tổng quan về CTDL và GT
12. Việc tổ chức CTDL để lưu trữ dữ liệu phục vụ cho các chương trình
máy tính có ý nghĩa rất quan trọng
Ví dụ ta có một bảng thông tin như sau:
Nếu gộp các dữ liệu trên cùng một cột thành cùng một cấu trúc thì
ta có 4 mảng như sau:
Ví dụ cấu trúc dữ liệu
12
Họ Tên Tuổi SBD Toán
Nguyễn A 18 1A 10
Trần B 19 2A 6
Vũ D 18 3A 8
Nguyễn A
Trần B
Vũ D
18
19
18
1A
2A
3A
10
6
8
Slide 1 - Tổng quan về CTDL và GT
13. Nếu gộp các dữ liệu trên cùng một hàng lại thành một
cấu trúc ta có cấu trúc bản ghi (Toàn bộ bảng là một
mảng các bản ghi) như sau (cấu trúc kiểu file):
Ví dụ cấu trúc dữ liệu
13
Nguyễn An | 18 | 1A | 10
Trần B | 19 | 2A | 6
Vũ D | 18 | 3A | 8
Slide 1 - Tổng quan về CTDL và GT
14. Nếu tổ chức dưới dạng đối tượng (object)
sẽ có 3 đối tượng
Ví dụ cấu trúc dữ liệu
Slide 1 - Tổng quan về CTDL và GT 14
Sinh viên
Họ tên: Trần B
Tuổi: 19
SBD: 2A
Toán: 6
(các phương thức)Sinh viên
Họ tên: Nguyễn An
Tuổi: 18
SBD: 1A
Toán: 10
(các phương thức)
Sinh viên
Họ tên: Vũ D
Tuổi: 18
SBD: 3A
Toán: 8
(các phương thức)
15. Một CTDL tốt phải thỏa mãn:
Phản ánh đúng thực tế
Phù hợp với các thao tác trên đó
Tiết kiệm tài nguyên hệ thống
Tiêu chuẩn của cấu trúc dữ liệu
15Slide 1 - Tổng quan về CTDL và GT
16. CTDL đóng vai trò quan trọng trong việc kết hợp thuật
toán (còn gọi là thuật giải hay giải thuật) để đư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.
Vai trò của cấu trúc dữ liệu
16Slide 1 - Tổng quan về CTDL và GT
17. Là tập hữu hạn có thứ tự các bước tác động lên dữ liệu
nào đó để sau một số hữu hạn lần thực hiện sẽ cho ta
kết quả.
Khái niệm giải thuật
17
GIẢI THUẬT
DỮ LIỆU ĐẦU RA
/KẾT QUẢ
DỮ LIỆU ĐẦU
VÀO
Slide 1 - Tổng quan về CTDL và GT
18. Có dữ liệu Đầu vào (Input)
Có dữ liệu kết quả Đầu ra (Output)
Tính Chính xác (Precision): Các bước của giải thuật
được mô tả chính xác.
Tính Hữu hạn (Finiteness): Giải thuật phải đưa được
đầu ra sau một số hữu hạn bước với mọi đầu vào.
Các đặc trưng của giải thuật
18Slide 1 - Tổng quan về CTDL và GT
19. Tính Đơn trị (Uniqueness): Các kết quả trung gian của
từng bước thực hiện giải thuật được xác định một cách
đơn trị và chỉ phụ thuộc đầu vào và các kết quả của các
bước trước.
Tính Tổng quát (Generality): Giải thuật có thể áp dụng
để giải mọi bài toán có dạng đã cho.
Các đặc trưng của giải thuật
Slide 1 - Tổng quan về CTDL và GT 19
20. Các cách biểu diễn giải thuật:
Ngôn ngữ tự nhiên
Lưu đồ (flow chart)
Mã giả (Pseudo code)
Ngôn ngữ lập trình
Các cách biểu diễn giải thuật
20Slide 1 - Tổng quan về CTDL và GT
21. Liệt kê tuần tự các bước bằng ngôn ngữ tự nhiên để
biễu diễn thuật toán.
Ưu điểm:
Đơn giản, không cần kiến thức về cách biểu diễn (mã giả, lưu
đồ,...)
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.
Biểu diễn bằng ngôn ngữ tự nhiên
21Slide 1 - Tổng quan về CTDL và GT
22. 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ồng kềnh hơn lưu đồ khối.
Nhược điểm:
Không trực quan bằng lưu đồ khối.
22
Biểu diễn bằng mã giả
Slide 1 - Tổng quan về CTDL và GT
23. Bài toán luộc trứng:
Bước 1: Lấy trứng từ giỏ
Bước 2: Đun nước trong nồi đến khi sôi
Bước 3: Bỏ trứng vào nồi nước
Bước 4: Đợi 3 phút cho trứng chín
Bước 5: Vớt trứng ra
Bước 6: Bóc vỏ trứng
Bước 7: Đặt vào đĩa
Bước 8: Dọn vỏ trứng
Ví dụ giả mã
Slide 1 - Tổng quan về CTDL và GT 23
24. Biểu diễn bằng lưu đồ
Điểm bắt đầu / Kết thúc giải thuật
Thao tác nhập/ xuất dữ liệu
Thao tác xử lý
Điều khiển rẽ nhánh
Đường tiến trình
Chú thích
Ký hiệu kết nối cùng trang hay sang trang
khác
24
Bắt đầu Kết thúc
2
Slide 1 - Tổng quan về CTDL và GT
25. Ví dụ lưu đồ
Slide 1 - Tổng quan về CTDL và GT 25
26. 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.
Để có kỹ năng lập trình đòi hỏi cần học tập và thực
hành.
Dùng phương pháp tinh chế từng bước để chuyển hoá
bài toán sang mã chương trình cụ thể.
Biểu diễn bằng ngôn ngữ lập trình
26Slide 1 - Tổng quan về CTDL và GT
27. Bài toán: Cho 3 số nguyên a, b, c. Mô tả giải thuật tìm
số lớn nhất trong 3 số đã cho.
Phân tích:
Đầu vào: 3 số nguyên a, b, c.
Đầu ra: số lớn nhất trong 3 số.
Ví dụ
27
GIẢI THUẬT
3 số nguyên: 1, 5, 3
Số lớn nhất: 5
Slide 1 - Tổng quan về CTDL và GT
28. Dùng ngôn ngữ tự nhiên mô tả giải thuật tìm số lớn nhất
trong 3 số a, b, c:
Bước 1. Gán max = a;
Bước 2. Nếu b > max thì gán max = b;
Bước 3. Nếu c > max thì gán max = c;
Ví dụ
28Slide 1 - Tổng quan về CTDL và GT
29. Dùng lưu đồ mô tả giải thuật tìm số lớn nhất trong 3 số
a, b, c:
Ví dụ
29Slide 1 - Tổng quan về CTDL và GT
30. Ví dụ
Theo dõi quá trình thực hiện của thuật toán với giá trị cụ thể của a,
b, c.
a := 1;
b := 5;
c := 3;
a = 1 b = 5 c = 3
Bước 1. Gán giá trị của a vào biến max max = 1
Bước 2. Do b > max (5 > 1) nên max gán bằng b max = 5
Bước 3. Do c < max (3 < 5) nên ko thực hiện gán max = 5
30Slide 1 - Tổng quan về CTDL và GT
31. Một vài nhận xét:
Giải thuật có tính chính xác: Các bước của giải thuật được mô tả
chính xác.
Giải thuật có tính duy nhất: với đầu vào đã xác định, kết quả tại
mỗi bước của giải thuật được xác định duy nhất
Giải thuật có tính hữu hạn: Giải thuật kết thúc sau 3 bước và
đưa ra lời giải của bài toán
Giải thuật có tính tổng quát: luôn đưa ra giá trị của số lớn nhất
trong 3 số bất kì
Ví dụ
Slide 1 - Tổng quan về CTDL và GT 31
32. 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ương pháp đánh giá độ phức tạp của giải thuật:
Dựa trên thời gian để thực hiện giải thuật đến khi ra được kết
quả.
Dựa trên số phép toán để thực hiện giải thuật
Độ phức tạp giải thuật
Slide 1 - Tổng quan về CTDL và GT 32
33. Thời gian thực hiện giải thuật hoàn toàn có thể đo bằng
cách lập trình.
Ví dụ cài đặt lớp Timing trong VB.Net:
Cho phép tính thời gian thực hiệntính thời gian thực hiện đoạn code chạy trong chương
trình
Lớp Timing có 2 thành phần dữ liệu:
startingTime: lưu trữ thời gian bắt đầu thực hiện đoạn code
duration: thời gian kết thúc của đoạn code
Thời gian thực hiện =Thời gian thực hiện = startingTime - duration
Tính thời gian thực hiện giải thuật
Slide 1 - Tổng quan về CTDL và GT 33
34. Tính thời gian thực hiện giải thuật
Slide 1 - Tổng quan về CTDL và GT 34
Public Class Timing
Private startingTime As TimeSpan
Private duration As TimeSpan
Public Sub New()
startingTime = New TimeSpan(0)
duration = New TimeSpan(0)
End Sub
End Class
startingTime
duration
35. Tính số phép toán để thực hiện
giải thuật
Slide 1 - Tổng quan về CTDL và GT 35
n - Kích thước đầu vào của dữ liệu
Mô tả độ phức tạp thuật toán qua một hàm O(n)
Hai nguyên tắc đánh giá:
Nguyên tắc cộng
Nguyên tắc nhân
36. Ví dụ:
Tính số phép toán để thực hiện
giải thuật
Slide 1 - Tổng quan về CTDL và GT 36
1 i = 1
2 loop ( i <= 1000 )
1 application code
2 i = i + 1
1 i = 1
2 loop ( i <= 1000 )
1 application code
2 i = i + 1
1 i = 1
2 loop ( i <= 1000 )
1 application code
2 i = i + 2
1 i = 1
2 loop ( i <= 1000 )
1 application code
2 i = i + 2
O(n) = 1000 O(n) = 500
37. Nguyên tắc cộng:
Nếu: chương trình P gồm 2
đoạn chương trình P1
(O1(n)) và P2 (O2(n)) chạy
nối tiếp nhau
Thì: độ phức tạp của CT P:
O(n) = max(O1(n), O2(n))
Tính số phép toán để thực hiện
giải thuật
Slide 1 - Tổng quan về CTDL và GT 37
P2
P1
P
Nguyên tắc nhân:
Nếu: chương trình P gồm 2
đoạn chương trình P1
(O1(n)) và P2 (O2(n)) lồng
nhau
Thì: độ phức tạp của CT P:
O(n) = O1(n).O2(n)
P1
P
P2
38. Một số ví dụ
38
Hằng số : O(c)
logN : O(logN)
N : O(N)
NlogN : O(NlogN)
N2 : O(N2)
N3 : O(N3)
2N : O(2N)
N! : O(N!)
Độ phức tạp tăng dần
Slide 1 - Tổng quan về CTDL và GT
39. Giải thuật = phép xử lý.
Đối tượng của giải thuật chính là dữ liệu được tổ chức
thành các cấu trúc.
CTDL & GT gắn chặt với nhau. Niklaus Wirth đã tổng
kết:
Cấu trúc dữ liệu + Giải thuật = Chương trình
Nếu thay đổi cấu trúc dữ liệu thì giải thuật cũng sẽ thay
đổi theo.
Mối liên hệ giữa CTDL và GT
Slide 1 - Tổng quan về CTDL và GT 39
40. Ví dụ quản lý danh bạ điện thoại
Dữ liệu gồm:
Họ và tên
Số điện thoại
Mối liên hệ giữa CTDL và GT
Slide 1 - Tổng quan về CTDL và GT 40
Họ và tên SĐT
Nguyễn Văn D 098123456
Vũ Thị B 091557799
Trần Xuân A 090333999
Quách Thái C 093886868
41. Bài toán tìm số điện thoại theo họ tên:
Nếu danh bạ không có tổ chức gì cả thì dẫn đến giải thuật là tìm tuần
tự từ đầu đến cuối
Nếu danh bạ (Họ và tên) tổ chức theo thứ tự a,b,c thì ta có thể tìm
kiếm theo giải thuật tìm kiếm nhị phân (tìm kiểu từ điển: chia đôi và
tìm trên nửa có chứa kết quả)-> thời gian tìm kiếm nhanh hơn.
Mối liên hệ giữa CTDL và GT
Slide 1 - Tổng quan về CTDL và GT 41
Họ và tên SĐT
Nguyễn Văn D 098123456
Vũ Thị B 091557799
Trần Xuân A 090333999
Quách Thái C 093886868
Họ và tên SĐT
Trần Xuân A 090333999
Vũ Thị B 091557799
Quách Thái C 093886868
Nguyễn Văn D 098123456
Danh bạ chưa sắp xếp Danh bạ đã sắp xếp
42. Nếu: danh bạ vừa xếp thứ tự
vừa có một bảng mục lục
A - Trang 10
B - Trang 40
C – Trang 100
Thì: Tìm trong bảng mục lục
trước. Nếu thấy thì chỉ cần tìm
trong một vần
-> thời gian thực hiện bài toán
nhanh hơn.
Mối liên hệ giữa CTDL và GT
Slide 1 - Tổng quan về CTDL và GT 42
Họ và tên SĐT
Trần Xuân A 098123456
Vũ Thị A 091662288
Quách Thái A 090333999
Nguyễn Văn A 093886668
Họ và tên SĐT
Trần Xuân B 012321432
Vũ Thị B 094325325
Quách Thái B 091987412
Nguyễn Văn B 096666666
43. Hướng tiếp cận thông thường: tìm hiểu về mặt lý thuyết
và chi tiết cài đặt các cấu trúc dữ liệu và giải thuật
Điểm mạnh: hiểu sâu về bản chất, có thể xây dựng CTDL>
cho những bài toán phức tạp
Điểm yếu: khó hiểu, tính ứng dụng thấp do đòi hỏi sinh viên
nắm vững cả lý thuyết và sâu về công cụ lập trình
Hướng tiếp cận mới:
Điểm mạnh:
Dễ hiểu các khái niệm CTDL>
Tận dụng ngay được những CTDL phổ biến đã được API của ngôn ngữ lập
trình cài đặt sẵn
Áp dụng vào ứng dụng ngay lập tức
Điểm yếu:
Phải gắn với một ngôn ngữ lập trình cụ thể
Hạn chế trong việc có thể tự cài đặt CTDL> mới
Hướng tiếp cận CTDL>
trong môn này
Slide 1 - Tổng quan về CTDL và GT 43
44. Trong thực tế, các CTDL có sẵn trong API của ngôn ngữ
lập trình đáp ứng được đến hơn 90% nhu cầu về lập
trình với CTDL> thực tế.
Môn này tiếp cận CTDL> theo hướng thực tiễn, vừa
giải thích lý thuyết, hướng dẫn cài đặt, vừa hướng dẫn
sử dụng các API có sẵn.
Cụ thể, các CTDL của API ngôn ngữ lập trình VB.NET
(bản 2008) sẽ được sử dụng để minh họa cho môn này.
Hướng tiếp cận CTDL>
trong môn này
Slide 1 - Tổng quan về CTDL và GT 44
45. Cấu trúc dữ liệu là cách tổ chức các dữ liệu cơ bản thành
các cấu trúc như mảng, chuỗi, file…
Giải thuật là tập hữu hạn có thứ tự các bước tác động
lên dữ liệu nào đó để sau một số hữu hạn lần thực hiện
sẽ cho ta kết quả.
Việc lựa chọn cấu trúc dữ liệu và giải thuật cho bài toán
là rất quan trọng.
Tổng kết
Slide 1 - Tổng quan về CTDL và GT 45