SlideShare a Scribd company logo
1 of 40
Chương 2

Chiến lược chia-để-trị
(Divide-and-conquer)
1
Nội dung
1.
2.
3.
4.
5.

Chiến lược chia để trị
Quicksort
Xếp thứ tự bằng phương pháp trộn
Xếp thứ tự ngoại
Cây tìm kiếm nhị phân

2
Chiến lược chia-để-trị



Là chiến lược thiết kế giải thuật nổi tiếng nhất.
Các giải thuật chia-để-trị thường tiến hành theo các bước sau:










Thể hiện của bài toán được chia làm những thể hiện nhỏ
hơn.
Những thể hiện nhỏ hơn này được giải quyết (thường là đệ
quy, mặc dù đôi khi không cần đệ quy).
Những lời giải đạt được từ những thể hiện nhỏ hơn phối
hợp lại làm thành lời giải của bài toán ban đầu.

Tìm kiếm bằng p.p. chia đôi (binary search) là một thí dụ của
chiến lược chia-để-trị.
Sơ đồ sau mô tả một chiến lược chia-để-trị mà trong đó chia
bài toán thành hai bài toán nhỏ hơn. Đây là trường hợp phổ
biến nhất của chiến lược này.

3
Chiến lược chia-để-trị
bài toán kích thước n

bài toán con 2
kích thước n/2

bài toán con 1
kích thước n/2

lời giải cho
bài toán con 1

lời giải cho
bài toán con 2

lời giải cho bài toán ban đầu
4
2. Giải thuật Quick sort
Giải thuật căn bản của Quick sort được phát minh năm
1960 bởi C. A. R. Hoare.
Quicksort thể hiện tinh thần thiết kế giải thuật theo lối
“Chia để trị” (divide-and-conquer).
Quicksort được ưa chuộng vì nó không quá khó để hiện
thực hóa.
Quicksort chỉ đòi hỏi khoảng chừng NlgN thao tác căn bản
để sắp thứ tự N phần tử.
Nhược điểm của Quick sort gồm:
- Nó là một giải thuật đệ quy
- Nó cần khoảng N2 thao tác căn bản trong trường hợp
xấu nhất
- Nó dễ bị lỗi khi lập trình (fragile).
5
Giải thuật căn bản của Quicksort
Quicksort là một phương pháp xếp thứ tự theo kiểu “chia
để trị”. Nó thực hiện bằng cách phân hoạch một tập tin
thành hai phần và sắp thứ tự mỗi phần một cách độc lập
với nhau.
Giải thuật có cấu trúc như sau:
procedure quicksort1(left,right:integer);
var i: integer;
begin
if right > left then
begin
i:= partition(left,right);
quicksort(left,i-1);
quicksort(i+1,right);
end;
end;

6
Phân hoạch
Phần then chốt của Quicksort là thủ tục phân hoạch
(partition), mà sắp xếp lại mảng sao cho thỏa mãn 3 điều
kiện sau:
i) phần tử a[i] được đưa về vị trí đúng đắn của nó, với một
giá trị i nào đó,
ii) tất cả những phần tử trong nhóm a[left], ..., a[i-1] thì nhỏ
hơn hay bằng a[i]
iii) tất cả những phần tử trong nhóm a[i+1], ..., a[right] thì
lớn hơn hay bằng a[i]
Example:
53 59 56
52 51 53

52
56

55
55

58
58

51
59

57
57

54
54
7
Thí dụ về phân hoạch
Giả sử chúng ta chọn phần tử thứ nhất hay phần tử tận cùng
trái (leftmost ) như là phần tử sẽ được đưa về vị trí đúng của
nó ( Phần tử này được gọi là phần tử chốt - pivot).
40 15 30 25 60 10 75 45 65 35 50 20 70 55
40 15 30 25 20 10 75 45 65 35 50 60 70 55
40

15 30 25 20 10 35 45 65 75 50 60 70 55

35

15 30 25 20 10 40 45 65 75 50 60 70 55

nhỏ hơn 40

sorted

lớn hơn 40

8
Giải thuật Quicksort
procedure quicksort2(left, right: integer);
var j, k: integer;
begin
if right > left then
begin
j:=left; k:=right+1;
//start partitioning
repeat
repeat j:=j+1 until a[j] >= a[left];
repeat k:=k-1 until a[k]<= a[left];
if j< k then swap(a[j],a[k])
until j>k;
swap(a[left],a[k]); //finish partitioning
quicksort2(left,k-1);
quicksort2(k+1,right)
end;
end;

9
Phân tích độ phức tạp: trường hợp tốt nhất
Trường hợp tốt nhất xảy ra với Quicksort là khi mỗi lần
phân hoạch chia tập tin ra làm hai phần bằng nhau.
điều này làm cho số lần so sánh của Quicksort thỏa mãn hệ
thức truy hồi:
CN = 2CN/2 + N.
Số hạnh 2CN/2 là chi phí của việc sắp thứ tự hai nửa tập tin và
N là chi phí của việc xét từng phần tử khi phân hoạch lần
đầu.
Từ chương 1, việc giải hệ thức truy hồi này đã đưa đến lời
giải:
CN ≈ N lgN.
10
Phân tích độ phức tạp: trường hợp xấu nhất
Một trường hợp xấu nhất của Quicksort là khi tập tin đã có
thứ tự rồi.
Khi đó, phần tử thứ nhất sẽ đòi hỏi n so sánh để nhận ra
rằng nó nên ở đúng vị trí thứ nhất. Hơn nữa, sau đó phân
đoạn bên trái là rỗng và và phân đoạn bên phải gồm n – 1
phần tử. Do đó với lần phân hoạch kế, phần tử thứ hai sẽ
đòi hỏi n-1 so sánh để nhận ra rằng nó nên ở đúng vị trí thứ
hai. Và cứ tiếp tục như thế.
Như vậy tổng số lần so sánh sẽ là:
n + (n-1) + … + 2 + 1 = n(n+1)/2 =
(n2 + n)/2 = O(n2).
Độ phức tạp trường hợp xấu nhất của Quicksort là O(n2).
11
Độ phức tạp trường hợp trung bình của Quicksort
Công thức truy hồi chính xác cho tổng số so sánh mà Quick
sort cần để sắp thứ tự N phần tử được hình thành một cách
ngẫu nhiên:
N

CN = (N+1) + (1/N) ∑ (Ck-1 + CN-k)
1

với N ≥ 2 và C1 = C0 = 0
Số hạng (N+1) bao gồm số lần so sánh phần tử chốt với từng
phần tử khác, thêm hai lần so sánh để hai pointer giao nhau.
Phần còn lại là do sự kiện mỗi phần tử ở vị trí k có cùng xác
xuất 1/N để được làm phần tử chốt mà sau đó chúng ta có hai
phân đoạn với số phần tử lần lượt là k-1 và N-k.
12
Chú ý rằng, C0 + C1 + … + CN-1 thì giống hệt
CN-1 + CN-2 +… + C0, nên ta có
N

CN = (N+1) + (1/N) ∑ 2Ck-1
1

Ta có thể loại trừ đại lượng tính tổng bằng cách nhân cả hai vế
với N và rồi trừ cho cùng công thức nhân với N-1:
NCN – (N-1) CN-1 = N(N+1) – (N-1)N + 2CN-1
Từ đó ta được
NCN = (N+1)CN-1 + 2N
13
Chia cả hai vế với N(N+1) ta được hệ thức truy hồi:
CN/(N+1) = CN-1/N + 2/(N+1)
= CN-2 /(N-1) + 2/N + 2/(N+1)
.
.
N

= C2 /3 + ∑ 2/(k+1)
3
N

N

CN/(N+1) ≈ 2 ∑ 1/k ≈ 2 ∫ 1/x dx = 2lnN
1

1

Suy ra:
CN≈ 2NlnN
14
Độ phức tạp trường hợp trung bình của
Quicksort (tt.)
Vì ta có:
lnN = (log2N).(loge2) =0.69 lgN
2NlnN ≈ 1.38 NlgN.
⇒Tổng số so sánh trung bình của Quicksort chỉ khoảng
chừng 38% cao hơn trong trường hợp tốt nhất.
Mệnh đề. Quicksort cần khoảng 2NlnN so sánh trong
trường hợp trung bình.
15
3. Sắp thứ tự bằng cách trộn (mergesort)
Trước tiên, chúng ta xét một quá trình được gọi là trộn
(merging), thao tác phối hợp hai tập tin đã có thứ tự
thành một tập tin có thứ tự lớn hơn.
Trộn
Trong nhiều ứng dụng xử lý dữ liệu, ta phải duy trì
một tập dữ liệu có thứ tự khá lớn. Các phần tử mới
thường xuyên được thêm vào tập tin lớn.
Nhóm các phần tử được đính vào đuôi của tập tin lớn
và toàn bộ tập tin được sắp thứ tự trở lại.
Tình huống đó rất thích hợp cho thao tác trộn.
16
Trộn
Giả sử ta có hai mảng số nguyên có thứ tự a[1..M] và
b[1..N]. Ta muốn trộn chúng thành một mảng thứ ba
c[1..M+N].
i:= 1; j :=1;
for k:= 1 to M+N do
if a[i] < b[j] then
begin c [k] := a[i]; i:= i+1 end
else begin c[k] := b[j]; j := j+1 end;
Ghi chú: Giải thuật dùng a[M+1] và b[N+1] để làm phần
tử cầm canh chứa hai giá trị lớn hơn mọi trị khóa khác.
Nhờ chúng, khi một trong hai mảng đã cạn thì vòng lặp sẽ
đưa phần còn lại của mảng còn lại vào mảng c.
17
Sắp thứ tự bằng phương pháp trộn
Một khi ta đã có thủ tục trộn, ta dùng nó làm cơ sở để
xây dựng một thủ tục sắp thứ tự đệ quy.
Để sắp thứ tự một tập tin nào đó, ta chia thành hai
đoạn bằng nhau, sắp thứ tự hai đoạn này một cách
đệ quy và rồi trộn hai đoạn lại với nhau.
Mergesort thể hiện chiến lược thiết kế giải thuật theo
lối “Chia để trị” (divide-and-conquer).

Giải thuật sau sắp thứ tự mảng a[1..r], dùng mảng
b[1..r] làm trung gian,
18
procedure mergesort(1,r: integer);
var i, j, k, m : integer;
begin
if r-1>0 then
begin
m:=(r+1)/2; mergesort(1,m); mergesort(m+1,r);
for i := m downto 1 do b[i] := a[j];
for j :=m+1 to r do b[r+m+1-j] := a[j];
for k :=1 to r do
if b[i] < b[j] then
begin a[k] := b[i] ; i := i+1 end
else begin a[k] := b[j]; j:= j-1 end;
end;
end;

19
A S O R T I N G E X A M P L E
A S
O R

Thí dụ: Sắp thứ tự một
mảng gồm những ký tự
chữ

A O R S
I T
G N
G I N T
A G I N O RS T
E X
A M
A E M X
L P
E L P
A E E L M P X
A A E E G I L M N O P R S T X

20
Độ phức tạp của giải thuật Mergesort
Tính chất 4.1: Sắp thứ tự bằng phương pháp trộn cần
khoảng NlgN so sánh để sắp bất kỳ tập tin N phần tử nào.
Đối với giải thuật mergesort đệ quy, số lần so sánh được
mô tả bằng hệ thức truy hồi: CN = 2CN/2 + N, với C1 = 0.
Suy ra:
CN ≈ N lg N
Tính chất 4.2: Sắp thứ tự bằng phương pháp trộn cần
dùng chỗ bộ nhớ thêm tỉ lệ với N.

21
4. Sắp thứ tự ngoại
Sắp thứ tự các tập tin lớn lưu trữ trên bộ nhớ phụ được gọi là
sắp thứ tự ngoại (external sorting).
Sắp thứ tự ngoại rất quan trọng trong các hệ quản trị cơ sở
dữ liệu (DBMSs).
Khối (block) và truy đạt khối (Block Access)
Hệ điều hành phân chia bộ nhớ phụ thành những khối có
kích thước bằng nhau. Kích thước của khối thay đổi tùy theo
hệ điều hành, nhưng thường ở khoảng 512 đến 4096 byte.
Các tác vụ căn bản trên các tập tin là
-     mang một khối ra bộ đệm ở bộ nhớ chính (read)
-     mang một khối từ bộ nhớ chính về bộ nhớ phụ (write).
22
Sắp thứ tự ngoại
Khi ước lượng thời gian tính toán của các giải thuật mà làm
việc trên các tập tin, chúng ta phải xét số lần mà chúng ta đọc
một khối ra bộ nhớ chính hay viết một khối về bộ nhớ phụ.
Một tác vụ như vậy được gọi là một truy đạt khối (block
access) hay một truy đạt đĩa (disk access).
khối = trang (page)

23
Xếp thứ tự ngoại bằng p.p. trộn (External Sortmerge)
Kỹ thuật thông dụng nhất để sắp thứ tự ngoại là giải thuật
sắp thứ tự ngoại bằng phương pháp trộn (external sort-merge
algorithm) .
Phương pháp sắp thứ tự ngoại này gồm 2 bước:
- tạo các run
- trộn run
Phương pháp sắp thứ tự ngoại bằng phương pháp trộn cũng
áp dụng kỹ thuật thiết kế giải thuật chia-để-trị.
M: số trang (page) của bộ đệm trong bộ nhớ chính (memorybuffer) .
24
Xếp thứ tự ngoại bằng p.p. trộn (tt.)
1. Trong bước 1, một số run có thứ tự được tạo ra bằng cách
sau:
i = 0;
repeat
      read M blocks of the file, or the rest of the file, whichever is
      smaller;
      sort the in-memory part of the file;
      write the sorted data to the run file Ri;
      i = i+1;
until the end of the file.
2. Trong bước 2, các run được trộn lại.

25
Trộn run (trường hợp tổng quát)
Tác vụ trộn là sự khái quát hóa của phép trộn hai đường
(two-way merge) được dùng bởi giải thuật sắp thứ tự nội
bằng phương pháp trộn. Nó trộn N run, do đó nó được gọi là
trộn nhiều đường (n-way merge).
• Trường hợp tổng quát:
Về tổng quát, nếu tập tin lớn hơn sức chứa của bộ đệm
N>M
thì không thể dành một trang trong bộ đệm cho mỗi run
trong bước trộn. Trong trường hợp này, sự trộn phải trải
qua nhiều chuyến (passes).
Vì chỉ có M-1 trang của bộ đệm dành cho các đầu vào, sự
trộn có thể tiếp nhận M-1 runs như là các đầu vào.
26
Trộn run [trường hợp tổng quát] (tt.)
Chuyến trộn đầu tiên làm việc như sau:
M-1 run đầu tiên được trộn lại thành một run cho chuyến kế
tiếp. Rồi thì M-1 runs sẽ được trộn theo cách tương tự và cứ
thế cho đến khi tất cả các run đầu tiên đều được giải quyết. Tại
điểm này, tổng số run được giảm đi một thừa số M-1.
Nếu số run đã được giảm đi này vẫn còn ≥ M, một chuyến
nữa sẽ được thực thi với các run được tạo ra bởi chuyến đầu
tiên làm đầu vào.
Mỗi chuyến làm giảm tổng số run một thừa số M – 1. Các
chuyến cứ lặp lại nhiều như cần thiết cho đến khi tổng số run
nhỏ hơn M; chuyến cuối cùng sẽ tạo ra kết quả là một tập tin
có thứ tự. 
27
Một thí dụ của thứ tự ngoại bằng p.p. trộn 
Giả sử: i) một mẩu tin chiếm vừa một khối
ii) bộ đệm chiếm 3 trang.
Trong giai đoạn trộn, hai trang được dùng làm đầu vào
và một trang được dùng để chứa kết quả.
Giai đoạn trộn đòi hỏi hai chuyến.

28
g 24
a 19
d 31
c 33
b 14
e 16
r 16
d 21
m3
p 2
d 7
a 14

a 19
d 31
g 24
b 14
c 33
e 16
d 31
m 3
r 16
a 14
d 17
p 2

Tạo run

a
b
c
d
e
g

19
14
33
31
16
24

a 14
d 7
d 21
m3
p 2
r 16

trộn pass-1

a 14
a 19
b 14
c 33
d 7
d 21
d 31
e 16
g 24
m3
p 2
r 16

trộn pass-2

29
Độ phức tạp của xếp thứ tự ngoại
Hãy tính số truy đạt khối (block accesses) của giải thuật sắp
thứ tự ngoại bằng phương pháp trộn.
br : tổng số khối của tập tin.
Trong giai đoạn tạo run, một khối được đọc và ghi, đem lại
một tổng số 2br, truy đạt khối.
Tổng số run ban đầu là
Tổng số chuyến trộn:

br/M.
log M-1(br/M)

Trong mỗi chuyến trộn, từng khối của tập tin được đọc một
lần và ghi một lần.
30
Độ phức tạp của xếp thứ tự ngoại(tt)
Tổng số truy đạt đĩa cho giải thuật sắp thứ tự ngoại bằng
phương pháp trộn là:
2br + 2br logM-1(br/M) =

tạo run

2br( logM-1 (br/M) +1)

các chuyến trộn

31
5. Cây tìm kiếm nhị phân
Nhiều bài toán liên quan đến cây tìm kiếm nhị phân có thể được
giải bằng cách áp dụng chiến lược chia-để-trị
Trong một cây tìm kiếm
nhị phân (binary search
tree), tất cả các mẩu tin
với khóa nhỏ hơn khóa tại
nút đang xét thì ở cây con
bên trái của nút và
các mẩu tin với khóa lớn
hơn hay bằng khóa tại nút
đang xét thì ở cây con bên
phải của nút.

32
Khởi tạo cây nhị phân
type link = ↑ node;
node = record key, info: integer;
l, r: link end;
var t, head, z: link;

Một cây rỗng được biểu diễn bằng cây có con trỏ bên
phải chỉ đến nút giả z.
procedure tree_init;
begin
new(z); z↑.1: = z; z↑.r: = z;
new(head); head↑.key: = 0; head↑.r: = z;
end;
33
Tác vụ thêm vào
Thêm một nút vào trong cây, ta thực hiện một sự tìm kiếm
(không thành công) nút ấy trên cây, rồi gắn nút ấy vào vị
trí ứng với nút giả z tại điểm mà quá trình tìm kiếm kết
thúc.
Hình vẽ minh họa việc
thêm nút P vào cây nhị
phân.

34
Tác vụ thêm vào (tt.)
procedure tree_insert (v: integer; x: link): link;
var p: link;
begin
repeat
p: = x;
if v < x↑.key then x: = x↑.1 else x: = x↑.r
until x = z;
new(x); x↑.key: = v;
x↑.1: = z; x↑.r: = z;
/* create a new node */
if v < p↑. key then p↑.1: = x /* p denotes the parent of
the new node */
else p↑.r: = x;
tree_insert: = x
end
35
Tác vụ tìm kiếm
type link = ↑ node;
node = record key, info: integer;
l, r: link end;
var t, head, z: link;
function treesearch (v: integer, x: link): link; /* search the node with
the key v in the binary search tree x */
begin
while v <> x↑. key and x <> z do
begin
if v < x↑.key then x: = x↑.1
else x: = x↑.r
end;
treesearch: = x
end;

36
Tính chất của sự tìm kiếm trên cây nhị phân
Tính chất: Một tác vụ thêm vào hay tìm kiếm trên một
cây nhị phân đòi hỏi chừng 2lnN so sánh trên một
cây được tạo ra từ N trị khóa ngẫu nhiên.
Chứng minh:
Chiều dài lối đi của 1 nút: là số cạnh cần duyệt qua để từ nút
ấy về nút rễ +1.
Đối với mỗi nút trên cây nhị phân, số so sánh được dùng
cho một sự tìm kiếm nút ấy thành công chính là chiều dài lối
đi của nút ấy.
Tổng tất cả chiều dài lối đi của mọi nút trên cây nhị phân
được gọi là chiều dài lối đi của cây nhị phân.
37
Chứng minh (tt.)




Khi chia chiều dài lối đi toàn cây với N, ta sẽ được số so
sánh trung bình đối với một sự tìm kiếm thành công trên
cây.
Nhưng nếu CN biểu thị chiều dài lối đi trung bình của toàn
cây, ta có một hệ thức truy hồi sau đây, với C1 = 1
N

CN = N +

∑
1

(Ck-1 + CN-k)

Số hạng N là do sự kiện nút rễ đóng góp 1 vào chiều dài
lối đi của mỗi nút.
Số hạng thứ hai là do sự kiện khóa tại nút rễ có xác xuất
bằng nhau để trở thành phần tử lớn thứ k trong cây, với
hai cây con lần lượt chứa k-1 nút và N-k.

38
Chứng minh (tt.)

Hệ thức truy hồi này rất giống hệ thức truy hồi khi phân tích
Quicksort, và nó đã được giải cùng một cách để đưa lại cùng
một kết quả.
Do đó chiều dài trung bình của cây N nút là
CN ≈ 2N lnN.
Suy ra chiều dài trung bình của một nút trong cây là 2lnN.
⇒ Một tác vụ tìm kiếm hay thêm vào đòi hỏi trung bình 2lnN so
sánh trên một cây gồm N nút.
39
Độ phức tạp trong trưòng hợp xấu nhất




Tính chất: Trong trường hợp xấu nhất, một tác vụ
tìm kiếm trên cây tìm kiếm nhị phân gồm N khóa có
thể cần N so sánh.
Trường hợp xấu nhất xảy ra khi cây nhị phân bị suy
biến thành một danh sách liên kết.

40

More Related Content

What's hot

Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dongKhao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dongKhoa Pham
 
Nhom lenh co ban
Nhom lenh co banNhom lenh co ban
Nhom lenh co banVũ Tích
 
2 matlab ly-thuyet_laptrinh_hamtoanhoc_
2 matlab ly-thuyet_laptrinh_hamtoanhoc_2 matlab ly-thuyet_laptrinh_hamtoanhoc_
2 matlab ly-thuyet_laptrinh_hamtoanhoc_Thân Văn Ngọc
 
[ Www.nguoithay.com ] hon 250 bai phuong trinh va he phuong trinh 2012
[ Www.nguoithay.com ] hon 250 bai phuong trinh va he phuong trinh 2012[ Www.nguoithay.com ] hon 250 bai phuong trinh va he phuong trinh 2012
[ Www.nguoithay.com ] hon 250 bai phuong trinh va he phuong trinh 2012Thuy Trang
 
MATMA - Chuong3matmakhoacongkhai
MATMA - Chuong3matmakhoacongkhaiMATMA - Chuong3matmakhoacongkhai
MATMA - Chuong3matmakhoacongkhaiSai Lemovom
 
B%c3%a1o%20c%c3%a1o%20gi%e1%ba%a3i%20t%c3%a dch%202
B%c3%a1o%20c%c3%a1o%20gi%e1%ba%a3i%20t%c3%a dch%202B%c3%a1o%20c%c3%a1o%20gi%e1%ba%a3i%20t%c3%a dch%202
B%c3%a1o%20c%c3%a1o%20gi%e1%ba%a3i%20t%c3%a dch%202Tran Anh
 
Tuyen tap cac bai toan va phuong phap giai pt va bpt vo ty
Tuyen tap cac bai toan va phuong phap giai  pt va bpt vo ty Tuyen tap cac bai toan va phuong phap giai  pt va bpt vo ty
Tuyen tap cac bai toan va phuong phap giai pt va bpt vo ty Huynh ICT
 

What's hot (16)

Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dongKhao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
 
Gt de quy
Gt de quyGt de quy
Gt de quy
 
Nhom lenh co ban
Nhom lenh co banNhom lenh co ban
Nhom lenh co ban
 
Matlab intro
Matlab introMatlab intro
Matlab intro
 
Hệ mật mã Rabin
Hệ mật mã RabinHệ mật mã Rabin
Hệ mật mã Rabin
 
Lttt b11
Lttt b11Lttt b11
Lttt b11
 
Hệ mật mã Rabin
Hệ mật mã RabinHệ mật mã Rabin
Hệ mật mã Rabin
 
2 matlab ly-thuyet_laptrinh_hamtoanhoc_
2 matlab ly-thuyet_laptrinh_hamtoanhoc_2 matlab ly-thuyet_laptrinh_hamtoanhoc_
2 matlab ly-thuyet_laptrinh_hamtoanhoc_
 
MATMAT- Chuong1
MATMAT- Chuong1MATMAT- Chuong1
MATMAT- Chuong1
 
[ Www.nguoithay.com ] hon 250 bai phuong trinh va he phuong trinh 2012
[ Www.nguoithay.com ] hon 250 bai phuong trinh va he phuong trinh 2012[ Www.nguoithay.com ] hon 250 bai phuong trinh va he phuong trinh 2012
[ Www.nguoithay.com ] hon 250 bai phuong trinh va he phuong trinh 2012
 
Tieu luan trai pho 22.01.2015
Tieu luan trai pho 22.01.2015Tieu luan trai pho 22.01.2015
Tieu luan trai pho 22.01.2015
 
Hệ mật mã merkle
Hệ mật mã merkleHệ mật mã merkle
Hệ mật mã merkle
 
Lttt matlab bt1
Lttt matlab bt1Lttt matlab bt1
Lttt matlab bt1
 
MATMA - Chuong3matmakhoacongkhai
MATMA - Chuong3matmakhoacongkhaiMATMA - Chuong3matmakhoacongkhai
MATMA - Chuong3matmakhoacongkhai
 
B%c3%a1o%20c%c3%a1o%20gi%e1%ba%a3i%20t%c3%a dch%202
B%c3%a1o%20c%c3%a1o%20gi%e1%ba%a3i%20t%c3%a dch%202B%c3%a1o%20c%c3%a1o%20gi%e1%ba%a3i%20t%c3%a dch%202
B%c3%a1o%20c%c3%a1o%20gi%e1%ba%a3i%20t%c3%a dch%202
 
Tuyen tap cac bai toan va phuong phap giai pt va bpt vo ty
Tuyen tap cac bai toan va phuong phap giai  pt va bpt vo ty Tuyen tap cac bai toan va phuong phap giai  pt va bpt vo ty
Tuyen tap cac bai toan va phuong phap giai pt va bpt vo ty
 

Viewers also liked

Happy birthday branni!!
Happy birthday branni!!Happy birthday branni!!
Happy birthday branni!!Aiza Castro
 
Happy birthday branni!!
Happy birthday branni!!Happy birthday branni!!
Happy birthday branni!!Aiza Castro
 
Chap1 new (tran dai's conflicted copy 2013 04-02)
Chap1 new (tran dai's conflicted copy 2013 04-02)Chap1 new (tran dai's conflicted copy 2013 04-02)
Chap1 new (tran dai's conflicted copy 2013 04-02)Loc Tran
 
Chap4 new (tran dai's conflicted copy 2013 04-02)
Chap4 new (tran dai's conflicted copy 2013 04-02)Chap4 new (tran dai's conflicted copy 2013 04-02)
Chap4 new (tran dai's conflicted copy 2013 04-02)Loc Tran
 
Appendix b 2
Appendix b 2Appendix b 2
Appendix b 2Loc Tran
 
Appendix a 2
Appendix a 2Appendix a 2
Appendix a 2Loc Tran
 
Chap8 part ii
Chap8 part iiChap8 part ii
Chap8 part iiLoc Tran
 
đạI học quốc gia thành phố hồ chí minh
đạI học quốc gia thành phố hồ chí minhđạI học quốc gia thành phố hồ chí minh
đạI học quốc gia thành phố hồ chí minhLoc Tran
 

Viewers also liked (19)

Happy birthday branni!!
Happy birthday branni!!Happy birthday branni!!
Happy birthday branni!!
 
Chap4 new
Chap4 newChap4 new
Chap4 new
 
Chap8 new
Chap8 newChap8 new
Chap8 new
 
Chap2 new
Chap2 newChap2 new
Chap2 new
 
Chap6 new
Chap6 newChap6 new
Chap6 new
 
Happy birthday branni!!
Happy birthday branni!!Happy birthday branni!!
Happy birthday branni!!
 
Chap3 new
Chap3 newChap3 new
Chap3 new
 
Chap1 new (tran dai's conflicted copy 2013 04-02)
Chap1 new (tran dai's conflicted copy 2013 04-02)Chap1 new (tran dai's conflicted copy 2013 04-02)
Chap1 new (tran dai's conflicted copy 2013 04-02)
 
Yashwanth
YashwanthYashwanth
Yashwanth
 
Chap5 new
Chap5 newChap5 new
Chap5 new
 
Chap4 new (tran dai's conflicted copy 2013 04-02)
Chap4 new (tran dai's conflicted copy 2013 04-02)Chap4 new (tran dai's conflicted copy 2013 04-02)
Chap4 new (tran dai's conflicted copy 2013 04-02)
 
Appendix b 2
Appendix b 2Appendix b 2
Appendix b 2
 
Chap7 new
Chap7 newChap7 new
Chap7 new
 
Appendix a 2
Appendix a 2Appendix a 2
Appendix a 2
 
Insurance
Insurance Insurance
Insurance
 
Chap8 part ii
Chap8 part iiChap8 part ii
Chap8 part ii
 
đạI học quốc gia thành phố hồ chí minh
đạI học quốc gia thành phố hồ chí minhđạI học quốc gia thành phố hồ chí minh
đạI học quốc gia thành phố hồ chí minh
 
Quality
QualityQuality
Quality
 
International entrepreneurship
International entrepreneurshipInternational entrepreneurship
International entrepreneurship
 

Similar to Chap2 new (tran dai's conflicted copy 2013 04-02)

Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2Nguyễn Công Hoàng
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4Nguyễn Công Hoàng
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Nguyễn Công Hoàng
 
Ctdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepCtdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepNguyễn Ngọc Hà
 
Chuong 2 co so phan tich do phuc tap cua giai thuat - sinh vien 2
Chuong 2   co so phan tich do phuc tap cua giai thuat - sinh vien 2Chuong 2   co so phan tich do phuc tap cua giai thuat - sinh vien 2
Chuong 2 co so phan tich do phuc tap cua giai thuat - sinh vien 2Hồ Lợi
 
Phân tích một số thuật toán
Phân tích một số thuật toánPhân tích một số thuật toán
Phân tích một số thuật toánHồ Lợi
 
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
Chuong 2  phan tich cac thuat toan sap xep va tim kiemChuong 2  phan tich cac thuat toan sap xep va tim kiem
Chuong 2 phan tich cac thuat toan sap xep va tim kiemgaconne1985
 
Chuong 2 Tim Kiem N Sap Xep
Chuong 2   Tim Kiem N Sap XepChuong 2   Tim Kiem N Sap Xep
Chuong 2 Tim Kiem N Sap Xepquang
 
Chuong 2 Tim Kiem N Sap Xep
Chuong 2   Tim Kiem N Sap XepChuong 2   Tim Kiem N Sap Xep
Chuong 2 Tim Kiem N Sap Xepquang
 
[Mathvn.com] tuyen tap de dh 2002-2012 theo chu de
[Mathvn.com] tuyen tap de dh  2002-2012 theo chu de[Mathvn.com] tuyen tap de dh  2002-2012 theo chu de
[Mathvn.com] tuyen tap de dh 2002-2012 theo chu detrongphuckhtn
 
Bai3 timkiem sapxep
Bai3 timkiem sapxepBai3 timkiem sapxep
Bai3 timkiem sapxepHồ Lợi
 
Bai3 timkiemsapxep
Bai3 timkiemsapxepBai3 timkiemsapxep
Bai3 timkiemsapxepnhà tôi
 
Tuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdfTuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdfNguynVnTun74
 
Tìm kiếm và sắp nội
Tìm kiếm và sắp nộiTìm kiếm và sắp nội
Tìm kiếm và sắp nộikikihoho
 
Nmlt c16 ky_thuatlaptrinhdequy_in
Nmlt c16 ky_thuatlaptrinhdequy_inNmlt c16 ky_thuatlaptrinhdequy_in
Nmlt c16 ky_thuatlaptrinhdequy_inHuy Nguyễn
 
Phương pháp giải phương trình, bất phương trình mũ
Phương pháp giải phương trình, bất phương trình mũPhương pháp giải phương trình, bất phương trình mũ
Phương pháp giải phương trình, bất phương trình mũLinh Nguyễn
 

Similar to Chap2 new (tran dai's conflicted copy 2013 04-02) (20)

Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
 
Gt de quy_2
Gt de quy_2Gt de quy_2
Gt de quy_2
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
 
Ctdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepCtdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xep
 
Chuong 2 co so phan tich do phuc tap cua giai thuat - sinh vien 2
Chuong 2   co so phan tich do phuc tap cua giai thuat - sinh vien 2Chuong 2   co so phan tich do phuc tap cua giai thuat - sinh vien 2
Chuong 2 co so phan tich do phuc tap cua giai thuat - sinh vien 2
 
Phân tích một số thuật toán
Phân tích một số thuật toánPhân tích một số thuật toán
Phân tích một số thuật toán
 
Pt to-hop-nhi-thuc-newton
Pt to-hop-nhi-thuc-newtonPt to-hop-nhi-thuc-newton
Pt to-hop-nhi-thuc-newton
 
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
Chuong 2  phan tich cac thuat toan sap xep va tim kiemChuong 2  phan tich cac thuat toan sap xep va tim kiem
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
 
Chuong 2 Tim Kiem N Sap Xep
Chuong 2   Tim Kiem N Sap XepChuong 2   Tim Kiem N Sap Xep
Chuong 2 Tim Kiem N Sap Xep
 
Chuong 2 Tim Kiem N Sap Xep
Chuong 2   Tim Kiem N Sap XepChuong 2   Tim Kiem N Sap Xep
Chuong 2 Tim Kiem N Sap Xep
 
[Mathvn.com] tuyen tap de dh 2002-2012 theo chu de
[Mathvn.com] tuyen tap de dh  2002-2012 theo chu de[Mathvn.com] tuyen tap de dh  2002-2012 theo chu de
[Mathvn.com] tuyen tap de dh 2002-2012 theo chu de
 
Chuong 3
Chuong 3Chuong 3
Chuong 3
 
Bai3 timkiem sapxep
Bai3 timkiem sapxepBai3 timkiem sapxep
Bai3 timkiem sapxep
 
Bai3 timkiemsapxep
Bai3 timkiemsapxepBai3 timkiemsapxep
Bai3 timkiemsapxep
 
Thuật toán K mean
Thuật toán K meanThuật toán K mean
Thuật toán K mean
 
Tuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdfTuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdf
 
Tìm kiếm và sắp nội
Tìm kiếm và sắp nộiTìm kiếm và sắp nội
Tìm kiếm và sắp nội
 
Nmlt c16 ky_thuatlaptrinhdequy_in
Nmlt c16 ky_thuatlaptrinhdequy_inNmlt c16 ky_thuatlaptrinhdequy_in
Nmlt c16 ky_thuatlaptrinhdequy_in
 
Phương pháp giải phương trình, bất phương trình mũ
Phương pháp giải phương trình, bất phương trình mũPhương pháp giải phương trình, bất phương trình mũ
Phương pháp giải phương trình, bất phương trình mũ
 

Recently uploaded

1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxAnAn97022
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfVyTng986513
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGPHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGhoinnhgtctat
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptx
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGPHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 

Chap2 new (tran dai's conflicted copy 2013 04-02)

  • 1. Chương 2 Chiến lược chia-để-trị (Divide-and-conquer) 1
  • 2. Nội dung 1. 2. 3. 4. 5. Chiến lược chia để trị Quicksort Xếp thứ tự bằng phương pháp trộn Xếp thứ tự ngoại Cây tìm kiếm nhị phân 2
  • 3. Chiến lược chia-để-trị   Là chiến lược thiết kế giải thuật nổi tiếng nhất. Các giải thuật chia-để-trị thường tiến hành theo các bước sau:      Thể hiện của bài toán được chia làm những thể hiện nhỏ hơn. Những thể hiện nhỏ hơn này được giải quyết (thường là đệ quy, mặc dù đôi khi không cần đệ quy). Những lời giải đạt được từ những thể hiện nhỏ hơn phối hợp lại làm thành lời giải của bài toán ban đầu. Tìm kiếm bằng p.p. chia đôi (binary search) là một thí dụ của chiến lược chia-để-trị. Sơ đồ sau mô tả một chiến lược chia-để-trị mà trong đó chia bài toán thành hai bài toán nhỏ hơn. Đây là trường hợp phổ biến nhất của chiến lược này. 3
  • 4. Chiến lược chia-để-trị bài toán kích thước n bài toán con 2 kích thước n/2 bài toán con 1 kích thước n/2 lời giải cho bài toán con 1 lời giải cho bài toán con 2 lời giải cho bài toán ban đầu 4
  • 5. 2. Giải thuật Quick sort Giải thuật căn bản của Quick sort được phát minh năm 1960 bởi C. A. R. Hoare. Quicksort thể hiện tinh thần thiết kế giải thuật theo lối “Chia để trị” (divide-and-conquer). Quicksort được ưa chuộng vì nó không quá khó để hiện thực hóa. Quicksort chỉ đòi hỏi khoảng chừng NlgN thao tác căn bản để sắp thứ tự N phần tử. Nhược điểm của Quick sort gồm: - Nó là một giải thuật đệ quy - Nó cần khoảng N2 thao tác căn bản trong trường hợp xấu nhất - Nó dễ bị lỗi khi lập trình (fragile). 5
  • 6. Giải thuật căn bản của Quicksort Quicksort là một phương pháp xếp thứ tự theo kiểu “chia để trị”. Nó thực hiện bằng cách phân hoạch một tập tin thành hai phần và sắp thứ tự mỗi phần một cách độc lập với nhau. Giải thuật có cấu trúc như sau: procedure quicksort1(left,right:integer); var i: integer; begin if right > left then begin i:= partition(left,right); quicksort(left,i-1); quicksort(i+1,right); end; end; 6
  • 7. Phân hoạch Phần then chốt của Quicksort là thủ tục phân hoạch (partition), mà sắp xếp lại mảng sao cho thỏa mãn 3 điều kiện sau: i) phần tử a[i] được đưa về vị trí đúng đắn của nó, với một giá trị i nào đó, ii) tất cả những phần tử trong nhóm a[left], ..., a[i-1] thì nhỏ hơn hay bằng a[i] iii) tất cả những phần tử trong nhóm a[i+1], ..., a[right] thì lớn hơn hay bằng a[i] Example: 53 59 56 52 51 53 52 56 55 55 58 58 51 59 57 57 54 54 7
  • 8. Thí dụ về phân hoạch Giả sử chúng ta chọn phần tử thứ nhất hay phần tử tận cùng trái (leftmost ) như là phần tử sẽ được đưa về vị trí đúng của nó ( Phần tử này được gọi là phần tử chốt - pivot). 40 15 30 25 60 10 75 45 65 35 50 20 70 55 40 15 30 25 20 10 75 45 65 35 50 60 70 55 40 15 30 25 20 10 35 45 65 75 50 60 70 55 35 15 30 25 20 10 40 45 65 75 50 60 70 55 nhỏ hơn 40 sorted lớn hơn 40 8
  • 9. Giải thuật Quicksort procedure quicksort2(left, right: integer); var j, k: integer; begin if right > left then begin j:=left; k:=right+1; //start partitioning repeat repeat j:=j+1 until a[j] >= a[left]; repeat k:=k-1 until a[k]<= a[left]; if j< k then swap(a[j],a[k]) until j>k; swap(a[left],a[k]); //finish partitioning quicksort2(left,k-1); quicksort2(k+1,right) end; end; 9
  • 10. Phân tích độ phức tạp: trường hợp tốt nhất Trường hợp tốt nhất xảy ra với Quicksort là khi mỗi lần phân hoạch chia tập tin ra làm hai phần bằng nhau. điều này làm cho số lần so sánh của Quicksort thỏa mãn hệ thức truy hồi: CN = 2CN/2 + N. Số hạnh 2CN/2 là chi phí của việc sắp thứ tự hai nửa tập tin và N là chi phí của việc xét từng phần tử khi phân hoạch lần đầu. Từ chương 1, việc giải hệ thức truy hồi này đã đưa đến lời giải: CN ≈ N lgN. 10
  • 11. Phân tích độ phức tạp: trường hợp xấu nhất Một trường hợp xấu nhất của Quicksort là khi tập tin đã có thứ tự rồi. Khi đó, phần tử thứ nhất sẽ đòi hỏi n so sánh để nhận ra rằng nó nên ở đúng vị trí thứ nhất. Hơn nữa, sau đó phân đoạn bên trái là rỗng và và phân đoạn bên phải gồm n – 1 phần tử. Do đó với lần phân hoạch kế, phần tử thứ hai sẽ đòi hỏi n-1 so sánh để nhận ra rằng nó nên ở đúng vị trí thứ hai. Và cứ tiếp tục như thế. Như vậy tổng số lần so sánh sẽ là: n + (n-1) + … + 2 + 1 = n(n+1)/2 = (n2 + n)/2 = O(n2). Độ phức tạp trường hợp xấu nhất của Quicksort là O(n2). 11
  • 12. Độ phức tạp trường hợp trung bình của Quicksort Công thức truy hồi chính xác cho tổng số so sánh mà Quick sort cần để sắp thứ tự N phần tử được hình thành một cách ngẫu nhiên: N CN = (N+1) + (1/N) ∑ (Ck-1 + CN-k) 1 với N ≥ 2 và C1 = C0 = 0 Số hạng (N+1) bao gồm số lần so sánh phần tử chốt với từng phần tử khác, thêm hai lần so sánh để hai pointer giao nhau. Phần còn lại là do sự kiện mỗi phần tử ở vị trí k có cùng xác xuất 1/N để được làm phần tử chốt mà sau đó chúng ta có hai phân đoạn với số phần tử lần lượt là k-1 và N-k. 12
  • 13. Chú ý rằng, C0 + C1 + … + CN-1 thì giống hệt CN-1 + CN-2 +… + C0, nên ta có N CN = (N+1) + (1/N) ∑ 2Ck-1 1 Ta có thể loại trừ đại lượng tính tổng bằng cách nhân cả hai vế với N và rồi trừ cho cùng công thức nhân với N-1: NCN – (N-1) CN-1 = N(N+1) – (N-1)N + 2CN-1 Từ đó ta được NCN = (N+1)CN-1 + 2N 13
  • 14. Chia cả hai vế với N(N+1) ta được hệ thức truy hồi: CN/(N+1) = CN-1/N + 2/(N+1) = CN-2 /(N-1) + 2/N + 2/(N+1) . . N = C2 /3 + ∑ 2/(k+1) 3 N N CN/(N+1) ≈ 2 ∑ 1/k ≈ 2 ∫ 1/x dx = 2lnN 1 1 Suy ra: CN≈ 2NlnN 14
  • 15. Độ phức tạp trường hợp trung bình của Quicksort (tt.) Vì ta có: lnN = (log2N).(loge2) =0.69 lgN 2NlnN ≈ 1.38 NlgN. ⇒Tổng số so sánh trung bình của Quicksort chỉ khoảng chừng 38% cao hơn trong trường hợp tốt nhất. Mệnh đề. Quicksort cần khoảng 2NlnN so sánh trong trường hợp trung bình. 15
  • 16. 3. Sắp thứ tự bằng cách trộn (mergesort) Trước tiên, chúng ta xét một quá trình được gọi là trộn (merging), thao tác phối hợp hai tập tin đã có thứ tự thành một tập tin có thứ tự lớn hơn. Trộn Trong nhiều ứng dụng xử lý dữ liệu, ta phải duy trì một tập dữ liệu có thứ tự khá lớn. Các phần tử mới thường xuyên được thêm vào tập tin lớn. Nhóm các phần tử được đính vào đuôi của tập tin lớn và toàn bộ tập tin được sắp thứ tự trở lại. Tình huống đó rất thích hợp cho thao tác trộn. 16
  • 17. Trộn Giả sử ta có hai mảng số nguyên có thứ tự a[1..M] và b[1..N]. Ta muốn trộn chúng thành một mảng thứ ba c[1..M+N]. i:= 1; j :=1; for k:= 1 to M+N do if a[i] < b[j] then begin c [k] := a[i]; i:= i+1 end else begin c[k] := b[j]; j := j+1 end; Ghi chú: Giải thuật dùng a[M+1] và b[N+1] để làm phần tử cầm canh chứa hai giá trị lớn hơn mọi trị khóa khác. Nhờ chúng, khi một trong hai mảng đã cạn thì vòng lặp sẽ đưa phần còn lại của mảng còn lại vào mảng c. 17
  • 18. Sắp thứ tự bằng phương pháp trộn Một khi ta đã có thủ tục trộn, ta dùng nó làm cơ sở để xây dựng một thủ tục sắp thứ tự đệ quy. Để sắp thứ tự một tập tin nào đó, ta chia thành hai đoạn bằng nhau, sắp thứ tự hai đoạn này một cách đệ quy và rồi trộn hai đoạn lại với nhau. Mergesort thể hiện chiến lược thiết kế giải thuật theo lối “Chia để trị” (divide-and-conquer). Giải thuật sau sắp thứ tự mảng a[1..r], dùng mảng b[1..r] làm trung gian, 18
  • 19. procedure mergesort(1,r: integer); var i, j, k, m : integer; begin if r-1>0 then begin m:=(r+1)/2; mergesort(1,m); mergesort(m+1,r); for i := m downto 1 do b[i] := a[j]; for j :=m+1 to r do b[r+m+1-j] := a[j]; for k :=1 to r do if b[i] < b[j] then begin a[k] := b[i] ; i := i+1 end else begin a[k] := b[j]; j:= j-1 end; end; end; 19
  • 20. A S O R T I N G E X A M P L E A S O R Thí dụ: Sắp thứ tự một mảng gồm những ký tự chữ A O R S I T G N G I N T A G I N O RS T E X A M A E M X L P E L P A E E L M P X A A E E G I L M N O P R S T X 20
  • 21. Độ phức tạp của giải thuật Mergesort Tính chất 4.1: Sắp thứ tự bằng phương pháp trộn cần khoảng NlgN so sánh để sắp bất kỳ tập tin N phần tử nào. Đối với giải thuật mergesort đệ quy, số lần so sánh được mô tả bằng hệ thức truy hồi: CN = 2CN/2 + N, với C1 = 0. Suy ra: CN ≈ N lg N Tính chất 4.2: Sắp thứ tự bằng phương pháp trộn cần dùng chỗ bộ nhớ thêm tỉ lệ với N. 21
  • 22. 4. Sắp thứ tự ngoại Sắp thứ tự các tập tin lớn lưu trữ trên bộ nhớ phụ được gọi là sắp thứ tự ngoại (external sorting). Sắp thứ tự ngoại rất quan trọng trong các hệ quản trị cơ sở dữ liệu (DBMSs). Khối (block) và truy đạt khối (Block Access) Hệ điều hành phân chia bộ nhớ phụ thành những khối có kích thước bằng nhau. Kích thước của khối thay đổi tùy theo hệ điều hành, nhưng thường ở khoảng 512 đến 4096 byte. Các tác vụ căn bản trên các tập tin là -     mang một khối ra bộ đệm ở bộ nhớ chính (read) -     mang một khối từ bộ nhớ chính về bộ nhớ phụ (write). 22
  • 23. Sắp thứ tự ngoại Khi ước lượng thời gian tính toán của các giải thuật mà làm việc trên các tập tin, chúng ta phải xét số lần mà chúng ta đọc một khối ra bộ nhớ chính hay viết một khối về bộ nhớ phụ. Một tác vụ như vậy được gọi là một truy đạt khối (block access) hay một truy đạt đĩa (disk access). khối = trang (page) 23
  • 24. Xếp thứ tự ngoại bằng p.p. trộn (External Sortmerge) Kỹ thuật thông dụng nhất để sắp thứ tự ngoại là giải thuật sắp thứ tự ngoại bằng phương pháp trộn (external sort-merge algorithm) . Phương pháp sắp thứ tự ngoại này gồm 2 bước: - tạo các run - trộn run Phương pháp sắp thứ tự ngoại bằng phương pháp trộn cũng áp dụng kỹ thuật thiết kế giải thuật chia-để-trị. M: số trang (page) của bộ đệm trong bộ nhớ chính (memorybuffer) . 24
  • 25. Xếp thứ tự ngoại bằng p.p. trộn (tt.) 1. Trong bước 1, một số run có thứ tự được tạo ra bằng cách sau: i = 0; repeat       read M blocks of the file, or the rest of the file, whichever is       smaller;       sort the in-memory part of the file;       write the sorted data to the run file Ri;       i = i+1; until the end of the file. 2. Trong bước 2, các run được trộn lại. 25
  • 26. Trộn run (trường hợp tổng quát) Tác vụ trộn là sự khái quát hóa của phép trộn hai đường (two-way merge) được dùng bởi giải thuật sắp thứ tự nội bằng phương pháp trộn. Nó trộn N run, do đó nó được gọi là trộn nhiều đường (n-way merge). • Trường hợp tổng quát: Về tổng quát, nếu tập tin lớn hơn sức chứa của bộ đệm N>M thì không thể dành một trang trong bộ đệm cho mỗi run trong bước trộn. Trong trường hợp này, sự trộn phải trải qua nhiều chuyến (passes). Vì chỉ có M-1 trang của bộ đệm dành cho các đầu vào, sự trộn có thể tiếp nhận M-1 runs như là các đầu vào. 26
  • 27. Trộn run [trường hợp tổng quát] (tt.) Chuyến trộn đầu tiên làm việc như sau: M-1 run đầu tiên được trộn lại thành một run cho chuyến kế tiếp. Rồi thì M-1 runs sẽ được trộn theo cách tương tự và cứ thế cho đến khi tất cả các run đầu tiên đều được giải quyết. Tại điểm này, tổng số run được giảm đi một thừa số M-1. Nếu số run đã được giảm đi này vẫn còn ≥ M, một chuyến nữa sẽ được thực thi với các run được tạo ra bởi chuyến đầu tiên làm đầu vào. Mỗi chuyến làm giảm tổng số run một thừa số M – 1. Các chuyến cứ lặp lại nhiều như cần thiết cho đến khi tổng số run nhỏ hơn M; chuyến cuối cùng sẽ tạo ra kết quả là một tập tin có thứ tự.  27
  • 28. Một thí dụ của thứ tự ngoại bằng p.p. trộn  Giả sử: i) một mẩu tin chiếm vừa một khối ii) bộ đệm chiếm 3 trang. Trong giai đoạn trộn, hai trang được dùng làm đầu vào và một trang được dùng để chứa kết quả. Giai đoạn trộn đòi hỏi hai chuyến. 28
  • 29. g 24 a 19 d 31 c 33 b 14 e 16 r 16 d 21 m3 p 2 d 7 a 14 a 19 d 31 g 24 b 14 c 33 e 16 d 31 m 3 r 16 a 14 d 17 p 2 Tạo run a b c d e g 19 14 33 31 16 24 a 14 d 7 d 21 m3 p 2 r 16 trộn pass-1 a 14 a 19 b 14 c 33 d 7 d 21 d 31 e 16 g 24 m3 p 2 r 16 trộn pass-2 29
  • 30. Độ phức tạp của xếp thứ tự ngoại Hãy tính số truy đạt khối (block accesses) của giải thuật sắp thứ tự ngoại bằng phương pháp trộn. br : tổng số khối của tập tin. Trong giai đoạn tạo run, một khối được đọc và ghi, đem lại một tổng số 2br, truy đạt khối. Tổng số run ban đầu là Tổng số chuyến trộn: br/M. log M-1(br/M) Trong mỗi chuyến trộn, từng khối của tập tin được đọc một lần và ghi một lần. 30
  • 31. Độ phức tạp của xếp thứ tự ngoại(tt) Tổng số truy đạt đĩa cho giải thuật sắp thứ tự ngoại bằng phương pháp trộn là: 2br + 2br logM-1(br/M) = tạo run 2br( logM-1 (br/M) +1) các chuyến trộn 31
  • 32. 5. Cây tìm kiếm nhị phân Nhiều bài toán liên quan đến cây tìm kiếm nhị phân có thể được giải bằng cách áp dụng chiến lược chia-để-trị Trong một cây tìm kiếm nhị phân (binary search tree), tất cả các mẩu tin với khóa nhỏ hơn khóa tại nút đang xét thì ở cây con bên trái của nút và các mẩu tin với khóa lớn hơn hay bằng khóa tại nút đang xét thì ở cây con bên phải của nút. 32
  • 33. Khởi tạo cây nhị phân type link = ↑ node; node = record key, info: integer; l, r: link end; var t, head, z: link; Một cây rỗng được biểu diễn bằng cây có con trỏ bên phải chỉ đến nút giả z. procedure tree_init; begin new(z); z↑.1: = z; z↑.r: = z; new(head); head↑.key: = 0; head↑.r: = z; end; 33
  • 34. Tác vụ thêm vào Thêm một nút vào trong cây, ta thực hiện một sự tìm kiếm (không thành công) nút ấy trên cây, rồi gắn nút ấy vào vị trí ứng với nút giả z tại điểm mà quá trình tìm kiếm kết thúc. Hình vẽ minh họa việc thêm nút P vào cây nhị phân. 34
  • 35. Tác vụ thêm vào (tt.) procedure tree_insert (v: integer; x: link): link; var p: link; begin repeat p: = x; if v < x↑.key then x: = x↑.1 else x: = x↑.r until x = z; new(x); x↑.key: = v; x↑.1: = z; x↑.r: = z; /* create a new node */ if v < p↑. key then p↑.1: = x /* p denotes the parent of the new node */ else p↑.r: = x; tree_insert: = x end 35
  • 36. Tác vụ tìm kiếm type link = ↑ node; node = record key, info: integer; l, r: link end; var t, head, z: link; function treesearch (v: integer, x: link): link; /* search the node with the key v in the binary search tree x */ begin while v <> x↑. key and x <> z do begin if v < x↑.key then x: = x↑.1 else x: = x↑.r end; treesearch: = x end; 36
  • 37. Tính chất của sự tìm kiếm trên cây nhị phân Tính chất: Một tác vụ thêm vào hay tìm kiếm trên một cây nhị phân đòi hỏi chừng 2lnN so sánh trên một cây được tạo ra từ N trị khóa ngẫu nhiên. Chứng minh: Chiều dài lối đi của 1 nút: là số cạnh cần duyệt qua để từ nút ấy về nút rễ +1. Đối với mỗi nút trên cây nhị phân, số so sánh được dùng cho một sự tìm kiếm nút ấy thành công chính là chiều dài lối đi của nút ấy. Tổng tất cả chiều dài lối đi của mọi nút trên cây nhị phân được gọi là chiều dài lối đi của cây nhị phân. 37
  • 38. Chứng minh (tt.)   Khi chia chiều dài lối đi toàn cây với N, ta sẽ được số so sánh trung bình đối với một sự tìm kiếm thành công trên cây. Nhưng nếu CN biểu thị chiều dài lối đi trung bình của toàn cây, ta có một hệ thức truy hồi sau đây, với C1 = 1 N CN = N + ∑ 1 (Ck-1 + CN-k) Số hạng N là do sự kiện nút rễ đóng góp 1 vào chiều dài lối đi của mỗi nút. Số hạng thứ hai là do sự kiện khóa tại nút rễ có xác xuất bằng nhau để trở thành phần tử lớn thứ k trong cây, với hai cây con lần lượt chứa k-1 nút và N-k. 38
  • 39. Chứng minh (tt.) Hệ thức truy hồi này rất giống hệ thức truy hồi khi phân tích Quicksort, và nó đã được giải cùng một cách để đưa lại cùng một kết quả. Do đó chiều dài trung bình của cây N nút là CN ≈ 2N lnN. Suy ra chiều dài trung bình của một nút trong cây là 2lnN. ⇒ Một tác vụ tìm kiếm hay thêm vào đòi hỏi trung bình 2lnN so sánh trên một cây gồm N nút. 39
  • 40. Độ phức tạp trong trưòng hợp xấu nhất   Tính chất: Trong trường hợp xấu nhất, một tác vụ tìm kiếm trên cây tìm kiếm nhị phân gồm N khóa có thể cần N so sánh. Trường hợp xấu nhất xảy ra khi cây nhị phân bị suy biến thành một danh sách liên kết. 40