Tải bản đầy đủ (.pdf) (10 trang)

Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 1: Cấu trúc dữ liệu và giải thuật - Trường Đại học Công nghiệp Thực phẩm Tp. Hồ Chí Minh

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 (290.24 KB, 10 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 01 1.1


CH

ƯƠ

NG 1



C

U TRÚC D

LI

U VÀ GI

I THU

T



1. Mối quan hệ giữa cấu trúc dữ liệu và giải thuật
1.1. Giải thuật (thuật toán, algorithms)


l <sub>Khái ni</sub>ệ<sub>m: Gi</sub>ả<sub>i thu</sub>ậ<sub>t là m</sub>ộ<sub>t h</sub>ệ<sub> th</sub>ố<sub>ng các thao </sub>


tác, các phép toán được thực hiện theo trình tự
nhất định trên một số đối tượng dữ liệu nào đó,
sao cho sau một số bước hữu hạn ta có được
kết quả mong muốn.


l Giải thuật phản ánh các phép xử lý, còn đối
tượng xử lý là dữ liệu.


1.1. Gi

i thu

t (thu

t toán, algorithms)



l <sub>Gi</sub>ả<sub>i thu</sub>ậ<sub>t ph</sub>ả<sub>i có các tính ch</sub>ấ<sub>t c</sub>ơ<sub> b</sub>ả<sub>n sau:</sub>


l Tính thực hiện được:


l Tính kết thúc:


l Tính kết quả: Phải cho kết quả mong muốn.


l Tính hiệu quả:



l Tính duy nhất:


l Tính tổng quát: Phải áp dụng cho mọi bài tốn cùng
loại.


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Ngơ Cơng Thắng Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 01 1.3


1.2. C

u trúc d

li

u



l Khái niệm dữ liệu: Dữ liệu là các phần tử biểu
diễn các thơng tin cần thiết cho bài tốn.


l Một bài tốn có thể có các loại dữ liệu: Dữ liệu
vào, dữ liệu trung gian, dữ liệu ra.


l Dữ liệu vào là dữ liệu cần đưa vào để xử lý, đây
chính là đầu vào của bài tốn.


l Dữ liệu trung gian là dữ liệu chứa các kết quả trung
gian trong quá trình xử lý.


l Dữ liệu ra là dữ liệu chứa kết quả mong muốn của
bài toán.


l Giải thuật thực hiện biến đổi từ các dữ liệu vào
thành các dữ liệu ra.


1.2. C

u trúc d

li

u (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l

Ví d

1: Ta xét bài tốn tính h

c b

ng cho



sinh viên theo ch

ế

độ

hi

n hành. Các d


li

u c

a bài toán bao g

m:



l <sub>D</sub>ữ<sub> li</sub>ệ<sub>u vào: H</sub>ọ<sub> và tên, </sub>Đ<sub>i</sub>ể<sub>m các mơn, S</sub>ố


trình các mơn học.


l Dữ liệu trung gian: Điểm trung bình


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Ngơ Cơng Thắng Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 01 1.5


1.2. C

u trúc d

li

u (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l

Ví d

2: Xét bài tốn gi

i ph

ươ

ng trình b

c


hai ax2 + bx + c = 0 . Các d

li

u c

a bài


toán này nh

ư

sau:



l <sub>D</sub>ữ<sub> li</sub>ệ<sub>u vào: a, b, c</sub>


l Dữ liệu trung gian: delta


l Dữ liệu ra: x1, x2


1.2. C

u trúc d

li

u (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l <sub>D</sub>ữ<sub> li</sub>ệ<sub>u nguyên t</sub>ử<sub> là ph</sub>ầ<sub>n t</sub>ử<sub> d</sub>ữ<sub> li</sub>ệ<sub>u c</sub>ơ<sub> s</sub>ở


khơng thể tách nhỏ ra được, có thể là một chữ
số, một kí tự, một giá trị logic,... Trong một bài
toán, dữ liệu bao gồm một tập các dữ liệu



nguyên tử.


l Từ các dữ liệu nguyên tử ta có thể tạo thành các
cấu trúc dữ liệu bằng các cách thức liên kết


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 01 1.7


1.2. C

u trúc d

li

u (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l

Tóm l

i, C

u trúc d

li

u là t

p h

p các


ph

n t

d

li

u liên k

ế

t v

i nhau b

ng m

t


cách nào

đ

ó. Nói t

i c

u trúc d

li

u là nói


t

i cách t

ch

c các ph

n t

d

li

u nh

ư


th

ế

nào.



1.2. C

u trúc d

li

u (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l Khái niệm về Cấu trúc lưu trữ: Cách biểu diễn
một cấu trúc dữ liệu trong bộ nhớ được gọi là
cấu trúc lưu trữ, đó chính là cách cài đặt cấu
trúc dữ liệu trên máy vi tính.


l Có thể có nhiều cấu trúc lưu trữ khác nhau cho một
cấu trúc dữ liệu. Chẳng hạn một cấu trúc dữ liệu kiểu
mảng ta có thể lưu trữ bằng các ơ nhớ kế tiếp nhau
trong bộ nhớ hoặc có thể lưu trữ bằng các ô nhớ
không kế tiếp nhau trong bộ nhớ.


l Có thể có nhiều cấu trúc dữ liệu khác nhau được cài



đặt trong bộ nhớ bằng một cấu trúc lưu trữ. Chẳng
hạn cấu trúc xâu kí tự, cấu trúc mảng đều có thể cài


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 01 1.9


1.2. C

u trúc d

li

u (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l

M

i m

t ngơn ng

l

p trình

đề

u có các


c

u trúc d

li

u ti

n

đị

nh (

đị

nh s

n), b

i


v

y khi ch

n ngơn ng

l

p trình nào thì ta


ph

i ch

p nh

n c

u trúc d

li

u ti

n

đị

nh


c

a nó, ph

i v

n d

ng linh ho

t các c

u


trúc d

li

u này vào bài toán c

n gi

i


quy

ế

t.



1.3. M

i quan h

gi

a c

u trúc d

li

u


và gi

i thu

t



l <sub>Xét t</sub>ớ<sub>i gi</sub>ả<sub>i thu</sub>ậ<sub>t thì ph</sub>ả<sub>i xét gi</sub>ả<sub>i thu</sub>ậ<sub>t </sub>đ<sub>ó tác </sub>


động trên cấu trúc dữ liệu nào.


l <sub>Xét t</sub>ớ<sub>i c</sub>ấ<sub>u trúc d</sub>ữ<sub> li</sub>ệ<sub>u thì ph</sub>ả<sub>i hi</sub>ể<sub>u c</sub>ấ<sub>u trúc d</sub>ữ


liệu đó cần được tác động bằng giải thuật gì để


được kết quả mong muốn.


l <b>Cấu trúc dữ liệu nào thì giải thuật đó. Khi cấu </b>


<b>trúc dữ liệu thay đổi giải thuật cũng thay đổi </b>
<b>theo.</b>


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 01 1.11


2. Các cách di

n

đạ

t gi

i thu

t



2.1. Liệt kê các bước bằng lời


l <sub>Trong cách di</sub>ễ<sub>n </sub>đạ<sub>t này ta ph</sub>ả<sub>i vi</sub>ế<sub>t t</sub>ừ<sub>ng b</sub>ướ<sub>c </sub>


làm cơng việc gì: Bước 1, Bước 2….


2. Các cách di

n

đạ

t gi

i thu

t



2.2. Lưu đồ giải thuật


l <sub>L</sub>ư<sub>u </sub>đồ<sub> gi</sub>ả<sub>i thu</sub>ậ<sub>t là m</sub>ộ<sub>t s</sub>ơ đồ<sub> có h</sub>ướ<sub>ng di</sub>ễ<sub>n </sub>


đạt các bước thực hiện của giải thuật.


l Lưu đồ giải thuật giúp người lập trình xem xét
sự làm việc của giải thuật khá chi tiết và cụ thể.


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 01 1.13


2.1. L

ư

u

đồ

gi

i thu

t (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l

Các hình c

ơ

b

n trong l

ư

u

đồ

gi

i thu

t


g

m có:




l Hình elíp thể hiện sự bắt đầu và kết thúc của
giải thuật.


l Hình chữ nhật chỉ các thao tác, cơng việc cần
thực hiện.


Công việc
Bắt đầu Kết thúc


2.1. L

ư

u

đồ

gi

i thu

t (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l

Các hình c

ơ

b

n trong l

ư

u

đồ

gi

i thu

t


g

m có:



l Hình thoi thể hiện các điệu kiện. Hình này có
một đường vào và hai đường ra ứng với hai
trường hợp điều kiện đúng hoặc điều kiện sai.


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 01 1.15


Ví d

: L

ư

u

đồ

gi

i thu

t tìm giá tr

l

n nh

t


trong m

ng s

A có n ph

n t



Bắt đầu


max := A(1)
i := 2


i <= n



Đ


S


A(i) > max


Đ


S


max := A(i)


i := i + 1


In giá trị max


Kết thúc


2.3. Gi



l

Gi

mã là gi

ngơn ng

l

p trình (t

a ngơn


ng

l

p trình).



l

<sub>Trong cách di</sub>

<sub>n </sub>

đạ

<sub>t gi</sub>

<sub>i thu</sub>

<sub>t b</sub>

<sub>ng gi</sub>



</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 01 1.17


2.3.1. Quy

đị

nh chung




l

Tên ch

ươ

ng trình vi

ế

t b

ng ch

hoa, có


th

thêm d

u g

ch ngang và

đặ

t sau t


Program



l

<sub>L</sub>

<sub>i chú thích </sub>

đặ

<sub>t gi</sub>

<sub>a hai d</sub>

<sub>u ngo</sub>

<sub>c {….}. </sub>



L

i chú thích

đượ

c quy

ướ

c dùng ti

ế

ng


Vi

t.



2.2.2. Bi

u th

c



l Các phép toán:


l Số học: +, -, *, /, ^, DIV, MOD


l Quan hệ: < , = , > , ≤ , ≥, ≠


l Logic: NOT, AND, OR, XOR


l Các giá trị Logic là True, False


l <sub>Tên bi</sub>ế<sub>n là m</sub>ộ<sub>t dãy ch</sub>ữ<sub> cái, ch</sub>ữ<sub> s</sub>ố<sub>, d</sub>ấ<sub>u g</sub>ạ<sub>ch </sub>


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 01 1.19


2.2.3. Câu l

nh



l Các câu lệnh thể hiện các thao tác, công việc
cần thực hiện. Các câu lệnh được viết viết cách
nhau bởi dấu ;



l <sub>Phép toán gán </sub>đượ<sub>c ký hi</sub>ệ<sub>u b</sub>ở<sub>i d</sub>ấ<sub>u := ho</sub>ặ<sub>c </sub>←
l Phép hoán đổi giá trị được ký hiệu bởi dấu :=:


hoặc ↔


l Cấu trúc tuần tự: Liệt kê các công việc, các thao
tác theo thứ tự. Để cho việc theo dõi được thuận
tiện có thể đánh thêm thứ tự 1), 2), 3)… hoặc a),
b), c)…


l Câu lệnh ghép:


Begin s1; s2; ... ; sn; end
Trong đó si là câu lệnh i


2.2.3. Câu l

nh



l

<sub>Câu l</sub>

<sub>nh </sub>

đ

<sub>i</sub>

<sub>u ki</sub>

<sub>n:</sub>



l

if B then S;



l

if B then S1 else S2;


trong

đ

ó B là bi

u th

c



</div>

<!--links-->

×