Tải bản đầy đủ (.ppt) (110 trang)

cau truc du lieu va giai thuat

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (10.96 MB, 110 trang )




Giảng viên : Hồ Sĩ Đàm
Email
Mob. 0913580373



Thời lượng: 4 buổi

Mục tiêu:
- Giới thiệu đề cương phần cấu trúc dữ liệu và
thuật toán ( môn Tin học cơ sở);
- Giải đáp thắc mắc của thi sinh.




 !

!"#!$%&'&$!()!&!*+!$"',
-$%""'.//0

#1%(+%2)'*+!$"*(("!&34%"%5'6 &(7)
8&+9:&&+;!<&=;>.'?@#

A1BC'D+5E&'6F85

C&,G&HI&+'CJKL&M


DN(&+
Chương I : Thuật toán và phân tích thuật toán
Chương II : Đệ quy
Chương III : Các dữ liệu có cấu trúc
Chương IV : Danh sách
Chương V : Cây
Chương VI : Bảng băm
Chương VII : Sắp xếp
Chương VIII : Tìm kiếm
Chương IX : Đồ thị
Chương X : Các kỹ thuật thiết kế thuậ toán

OPD9QRD-SDT
QRD

Giải bài toán trên máy tính

Mô hình dữ liệu

Cấu trúc dữ liệu

Bài toán và thuật toán

OPD9
QRD-SDTQRD
1. Giải bài toán trên máy tính
Bước 1. Xác định bài toán:
K<)U7&;>&>2Q>
Bước 2. Lựa chọn hoặc thiết kế thuật toán
a) Lựa chọn hoặc thiết kế thuật toán


 V!<&&W;!<&

XM&++&Y

I+&YZ

U[Y

b) Mô tả thuật toán
• Input:"\&+5&(H]&+2VZ
• Output: ^2$9_V^`$#
• Ý tưởng:
- D8aVb^_02$_#X8c)#
3D8dVb+ UV2^e&+&.#[>)!U8&
aV#
OPD9
QRD-SDTQRD
1. Giải bài toán trên máy tính

OPD9
QRD-SDTQRD
1. Giải bài toán trên máy tính
*) Cách liệt kê
B1: Nhập a và b;
B2: q

0;
B3: Nếu a < b thì r


a rồi
chuyển đến B5;
B4: a

a - b, q

q + 1 rồi
quay về B3;
B5: Đưa ra r và q. Kết thúc.
*) Sơ đồ khối

OPD9
QRD-SDTQRD
1. Giải bài toán trên máy tính
Bước 3. Viết chương
trình:

Chọn CTDL;

Ngôn ngữ lập trình
Bước 4. Hiệu chỉnh:

Xây dựng các bộ
input (test) tiêu biểu;

Chạy thử.
"%"$Z
$'V'^'$9&%+%$Z
6%+&
$")$Z

4$%&=f!&+$&)g)(h@Z
4$%=fD>"!9h@Z
%(&=@Z
4$%=fD>"!V9h@Z
%(&=V@Z
^9_0Z
4%d_V!
6%+&
%)='V@Z
&)=^@Z
g&(Z
$9_Z
4$%&=f!&+^_h'^@Z
4$%&=f-&($_h'$@Z
%(&Z
g&(#
"%"$Z
$'V'^'$9&%+%$Z
6%+&
$")$Z
4$%&=f!&+$&)g)(h@Z
4$%=fD>"!9h@Z
%(&=@Z
4$%=fD>"!V9h@Z
%(&=V@Z
^9_0Z
4%d_V!
6%+&
%)='V@Z
&)=^@Z

g&(Z
$9_Z
4$%&=f!&+^_h'^@Z
4$%&=f-&($_h'$@Z
%(&Z
g&(#

OPD9
QRD-SDTQRD
1. Giải bài toán trên máy tính
Bước 5. Viết tài liệu:

Hướng dẫn sử dụng;

Thuật toán, Cấu trúc dữ liệu;

…….


OPD9
QRD-SDTQRD
?. Mô hình dữ liệu (Data model)

Là các trừu tượng :đồ thị, tập hợp, danh sách, cây

Hai khía cạnh:

<$7=i(j@

<)>k>!<&=!>%$!&@


Chương trình có thể truy xuất đến các vùng lưu trữ.

OPD9
QRD-SDTQRD
l. Cấu trúc dữ liệu (Data structures)

Là các đơn vị cấu trúc (construct) của NNLT dùng để biểu
diễn các mô hình dữ liệu
Ví dụ: mảng, bản gi, file,xâu,

OPD9
QRD-SDTQRD
4. Bài toán và thuật toán
m#.#6!<&
Xác định rõ Input và Output
Ví dụ:
Kiểm tra xem N có phải là số nguyên tố hay
không?
- Input : Số nguyên dương N
- Output : Trả lời N là số nguyên tố hay không?

OPD9
QRD-SDTQRD
4. Bài toán và thuật toán
m#?#Thuật toán
Thuật toán để giải một bài toán là một
dãy hữu hạn các thao tác đươc sắp xếp
theo một trật tự xác định sao cho sau khi
thực hiện dãy thao tác đó, từ Input của

bài toán này, ta nhận được Output cần
tìm.

Ví dụ: Tìm giá trị lớn nhất của dãy số a1, a2, …,aN,

Input : Số nguyên dương N và dãy a1, a2, , , aN.
Output : Tìm Max là giá trị lớn nhất của dãy đã cho.
Ý tưởng:
Khởi tạo Max=a1. Với mỗi i, nếu ai > Max thì thay
giá trị Max= ai.
OPD9
QRD-SDTQRD
4. Bài toán và thuật toán

OPD9
QRD-SDTQRD
4. Bài toán và thuật toán
m#l#,M ;!<&
@<)
B1. Nhập N và dãy a1, , aN
B2. Đặt Max = a1, i = 2.
B3. Nếu i > N thì đến b. 5.
B4.
4.1. N ếu ai > Max thì Max = ai.
4.2. Đặt i=i+1 rồi quay b.3.
B5. Đưa ra Max rồi kết thúc.

OPD9
QRD-SDTQRD
4. Bài toán và thuật toán

b) Sơ đồ khối

Dùng: Ovan, Chữ
nhật, Hình thoi,Mũi
tên,…

OPD9
QRD-SDTQRD
4. Bài toán và thuật toán
c) Ngôn ngữ điều khiển

Dùng các ký hiệu và quy tắc

Cách thiết lập thứ tự các thao tác
cấu trúc điều khiển.

OPD9
QRD-SDTQRD
4. Bài toán và thuật toán
4.4. Các đặc trưng chính
a)Tính kết thúc (tính đóng)
b)Tính xác định (đơn nghĩa)
Có đúng một thao tác để được thực hiện hoặc dừng.

OPD9
QRD-SDTQRD
4. Bài toán và thuật toán
c)Tính chi tiết
Phụ thuộc vào đối tượng thực hiện
d)Tính phổ dụng

với input thay đổi
e) Đại lượng vào
f) Đại lượng ra

OPD9
QRD-SDTQRD
4. Bài toán và thuật toán
g) Tính hiệu quả

I+&9\)UNnop

XM&++&9&+Hq&+)r&UiH$j

OPD9
QRD-SDTQRD
4. Bài toán và thuật toán
4.5. Độ phức tạp thuật toán
a) Lựa chọn thuật toán

Dễ hiểu, dễ cài đặt và dễ ghi chép ?

Sử dụng các tài nguyên hiệu quả?
Tùy đặc tính của bài toán

Phân tích theo kinh nghiệm

Thực hiện và kết luận

dễ mắc lỗi


Kích thước dữ liệu đầu vào là quan trọng: T(n)

OPD9
QRD-SDTQRD
4. Bài toán và thuật toán
b) Ký pháp
Giả sử T(n) là thời gian thực hiện TT và f(n), g(n), h(n) là
các hàm xác định dương
Hàm O lớn: O(g(n)) nếu

c và n0 sao
cho T(n) <= c.g(n) với mọi n>= n
0


+=&@+G&$&)s=&@#

Ví dụ, nếu T(n) = n
2
+ 1 thì T(n) = O(n
2
).
Chọn c=2 và n
0
=1, khi đó với mọi n>=1, ta có T(n)= n
2
+1 <=
2n
2
=2g(n).

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×