SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
Bài 1:
TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU
VÀ GIẢI THUẬT
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
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
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
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
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
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
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
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)
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
Ví dụ lưu đồ
Slide 1 - Tổng quan về CTDL và GT 25
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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&GT
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&GT
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&GT mới
Hướng tiếp cận CTDL&GT
trong môn này
Slide 1 - Tổng quan về CTDL và GT 43
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&GT thực tế.
Môn này tiếp cận CTDL&GT 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&GT
trong môn này
Slide 1 - Tổng quan về CTDL và GT 44
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

Más contenido relacionado

La actualidad más candente

PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGThùy Linh
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngleemindinh
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtHưởng Nguyễn
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinVõ Phúc
 
Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Hoa Le
 
Hướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracerHướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracerBình Tân Phú
 
91684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-291684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-2tranquanthien
 
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)iwanttoit
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm nataliej4
 
Bài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệuBài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệutrieulongweb
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhJojo Kim
 
Phụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcnttPhụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcnttanhhuycan83
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformMasterCode.vn
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên nataliej4
 
Do an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tuDo an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tuThiênĐàng CôngDân
 
Đề thi môn công nghệ phần mềm
Đề thi môn công nghệ phần mềmĐề thi môn công nghệ phần mềm
Đề thi môn công nghệ phần mềmLenhHoXung283
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boolekikihoho
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồzDollz Lovez
 

La actualidad más candente (20)

PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Bài tập HTML/CSS
Bài tập HTML/CSSBài tập HTML/CSS
Bài tập HTML/CSS
 
Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu
 
Hướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracerHướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracer
 
91684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-291684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-2
 
Ktmt chuong 5
Ktmt chuong 5Ktmt chuong 5
Ktmt chuong 5
 
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm
 
Bài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệuBài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệu
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tính
 
Phụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcnttPhụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcntt
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winform
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
 
Do an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tuDo an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tu
 
Đề thi môn công nghệ phần mềm
Đề thi môn công nghệ phần mềmĐề thi môn công nghệ phần mềm
Đề thi môn công nghệ phần mềm
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boole
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
 

Similar a Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT

Ctdl c1-tong quan
Ctdl c1-tong quanCtdl c1-tong quan
Ctdl c1-tong quanhiep0109
 
Bai 1 tong quan ve ctdl&amp;gt
Bai 1   tong quan ve ctdl&amp;gtBai 1   tong quan ve ctdl&amp;gt
Bai 1 tong quan ve ctdl&amp;gtTrangThu251076
 
Ctdl 01 t_quan
Ctdl 01 t_quanCtdl 01 t_quan
Ctdl 01 t_quanLê Giang
 
CTDL&GT_01
CTDL&GT_01CTDL&GT_01
CTDL&GT_01kikihoho
 
Chuong 1. tong quan
Chuong 1. tong quanChuong 1. tong quan
Chuong 1. tong quanVũ Nam
 
Bài tập CTDL và GT 13
Bài tập CTDL và GT 13Bài tập CTDL và GT 13
Bài tập CTDL và GT 13Hồ Lợi
 
Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Hồ Lợi
 
Kĩ thuật phân tích và thiết kế g
Kĩ thuật phân tích và thiết kế gKĩ thuật phân tích và thiết kế g
Kĩ thuật phân tích và thiết kế gthiendthu2008
 
Ctdl va gt_hồ_sĩ_đàm
Ctdl va gt_hồ_sĩ_đàmCtdl va gt_hồ_sĩ_đàm
Ctdl va gt_hồ_sĩ_đàmvinhduchanh
 
Gioi Thieu
Gioi ThieuGioi Thieu
Gioi Thieugiang
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Kuli An
 
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11K33LA-KG
 

Similar a Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT (20)

Ctdl c1-tong quan
Ctdl c1-tong quanCtdl c1-tong quan
Ctdl c1-tong quan
 
Bai 1 tong quan ve ctdl&amp;gt
Bai 1   tong quan ve ctdl&amp;gtBai 1   tong quan ve ctdl&amp;gt
Bai 1 tong quan ve ctdl&amp;gt
 
Ctdl 01 t_quan
Ctdl 01 t_quanCtdl 01 t_quan
Ctdl 01 t_quan
 
CTDL&GT_01
CTDL&GT_01CTDL&GT_01
CTDL&GT_01
 
Chuong 1. tong quan
Chuong 1. tong quanChuong 1. tong quan
Chuong 1. tong quan
 
Đề tài: Thiết kế và phân tích thuật toán, HAY
Đề tài: Thiết kế và phân tích thuật toán, HAYĐề tài: Thiết kế và phân tích thuật toán, HAY
Đề tài: Thiết kế và phân tích thuật toán, HAY
 
Bài tập CTDL và GT 13
Bài tập CTDL và GT 13Bài tập CTDL và GT 13
Bài tập CTDL và GT 13
 
Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1
 
Kĩ thuật phân tích và thiết kế g
Kĩ thuật phân tích và thiết kế gKĩ thuật phân tích và thiết kế g
Kĩ thuật phân tích và thiết kế g
 
Thdc 06
Thdc 06Thdc 06
Thdc 06
 
chương1.pdf
chương1.pdfchương1.pdf
chương1.pdf
 
Ctdl va gt_hồ_sĩ_đàm
Ctdl va gt_hồ_sĩ_đàmCtdl va gt_hồ_sĩ_đàm
Ctdl va gt_hồ_sĩ_đàm
 
Ltc 01
Ltc 01Ltc 01
Ltc 01
 
Gioi Thieu
Gioi ThieuGioi Thieu
Gioi Thieu
 
Viet do an
Viet do anViet do an
Viet do an
 
Ktlt C10 Cau Truc
Ktlt C10 Cau TrucKtlt C10 Cau Truc
Ktlt C10 Cau Truc
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#
 
Emailing buoi 2 thuat toan
Emailing buoi 2   thuat toanEmailing buoi 2   thuat toan
Emailing buoi 2 thuat toan
 
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
 
Btth1_HuynhThiThuyLinh
Btth1_HuynhThiThuyLinhBtth1_HuynhThiThuyLinh
Btth1_HuynhThiThuyLinh
 

Más de MasterCode.vn

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnMasterCode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnMasterCode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnMasterCode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnMasterCode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnMasterCode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnMasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnMasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnMasterCode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnMasterCode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnMasterCode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
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
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
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
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 

Más de MasterCode.vn (20)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 

Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT

  • 1. Bài 1: TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
  • 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&GT 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&GT 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&GT mới Hướng tiếp cận CTDL&GT 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&GT thực tế. Môn này tiếp cận CTDL&GT 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&GT 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