Bài giảng Cấu trúc dữ liệu và Giải thuật - Chương VI: Sắp xếp - Đỗ Bích Diệp

Cấu trúc dữ liệu và Giải thuật  
Cấu trúc dữ liệu và Giải thuật  
Chương VI: Sắp xếp  
7 2 ⏐ 9 4 → 2 4 7 9  
7 ⏐ 2 → 2 7  
9 ⏐ 4 → 4 9  
7 → 7  
2 → 2  
9 → 9  
4 → 4  
Đỗ Bích Diệp - Khoa CNTT  
Chương VI: Sắp xếp  
z Nội dung  
1. Bài toán sắp xếp  
2. Ba phương pháp sắp xếp cơ bản  
1. Lựa chọn, thêm dần và đổi chỗ  
2. Phân tích, đánh giá  
3. Sắp xếp kiểu hòa nhập  
4. Sắp xếp nhanh  
5. Sắp xếp kiểu vun đống  
6. Một số phương pháp sắp xếp đặc biệt  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
1
Cấu trúc dữ liệu và Giải thuật  
Bài toán Sắp xếp  
– Sắp xếp lại một tập các phần tử dữ liệu theo chiều  
tăng dần hoặc giảm dần  
23 78 45 8 32 56  
8 23 32 45 78 56  
Đỗ Bích Diệp - Khoa CNTT  
Bài toán Sắp xếp  
– Khóa sắp xếp  
z Một bộ phận của bản ghi biểu diễn đối tượng được sắp  
z Khóa sẽ được sử dụng để xác định thứ tự sắp xếp bản ghi  
trong một tập các bản ghi  
– Bảng khóa:  
z Sử dụng trong sắp xếp khi muốn hạn chế việc di chuyển các  
bản ghi dữ liệu  
z Một tập các bản ghi chỉ chứa hai trường  
– Khóa: chứa khóa sắp xếp  
– Link: Con trỏ ghi địa chỉ của bản ghi đối tượng dữ liệu tương ứng  
z Thứ tự các bản ghi trong bảng khóa cho phép xác định thứ tự  
của các bản ghi dữ liệu  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
2
Cấu trúc dữ liệu và Giải thuật  
Các loại thuật toán Sắp xếp  
Sorts  
External  
Internal  
• Natural  
• Balanced  
• Polyphase  
Insertion  
Selection  
Exchange  
• Insertion  
• Shell  
• Selection  
• Heap  
• Bubble  
• Quick  
Đỗ Bích Diệp - Khoa CNTT  
Bài toán Sắp xếp  
– Các đặc trưng của thuật toán sắp xếp  
z Tính ổn định của thuật toán sắp xếp  
– Các phần tử có cùng khóa sẽ giữ nguyên thứ tự tương  
đối của chúng như trước khi sắp xếp  
78 8 45 8 32 56  
8
8 32 45 56 78  
z Tính tại chỗ  
– Thuật toán đòi hỏi không gian nhớ phụ là hằng số (không  
phụ thuộc vào số lượng phần tử trong dãy cần sắp)  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
3
Cấu trúc dữ liệu và Giải thuật  
Bài toán Sắp xếp  
– Trong chương này, bài toán sắp xếp được đơn  
giản hóa dưới dạng như sau  
z Đầu vào: Một dãy các số nguyên a1, a2, …, an  
z Đầu ra : Một hoán vị của dãy số đã cho trong đó các giá  
trị được sắp xếp theo chiều tăng dần  
Đỗ Bích Diệp - Khoa CNTT  
Ba phương pháp sắp xếp cơ bản  
1. Sắp xếp kiểu lựa chọn (Selection Sort)  
2. Sắp xếp kiểu thêm dần (Insertion Sort)  
3. Sắp xếp kiểu đổi chỗ - Sắp xếp kiểu nổi bọt  
(Buble Sort)  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
4
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp kiểu lựa chọn – Selection Sort  
– Ý tưởng:  
z Tại mỗi lượt, chọn phần tử nhỏ nhất trong số các phần  
tử chưa được sắp. Đưa phần tử được chọn vào vị trí  
đúng bằng phép đổi chỗ.  
z Sau lượt thứ i (i = 1..n-1) , dãy cần sắp coi như được  
chia thành 2 phần  
– Phần đã sắp: từ vị trí 1 đến i  
– Phần chưa sắp: từ vị trí i +1 đến n  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp kiểu lựa chọn  
– Ví dụ: Sắp xếp dãy sau theo thứ tự tăng dần:  
z A = {12, 5, 3, 10, 18, 4, 9, 16}  
Lượt 1 Lượt 2 Lượt 3 Lượt 4 Lượt 5 Lượt 6 Lượt 7  
12  
5
3
3
3
3
3
3
3
5
4
4
4
4
4
4
3
12  
10  
18  
12  
10  
18  
5
5
5
5
5
10  
18  
10  
18  
9
9
9
9
18  
10  
10  
10  
4
4
5
12  
9
12  
10  
16  
12  
18  
16  
12  
18  
16  
12  
16  
18  
9
9
9
16  
16  
16  
16  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
5
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp kiểu lựa chọn  
Procedure SELECTION-SORT(A,n)  
1. for i = 1 to n-1 do begin  
2. {Duyệt từ đỉnh}  
min = i;  
3. {Chọn phần tử nhỏ nhất}  
for j = i+1 to n do  
if A[j] < A[min] then  
min = j ;  
4. {Đổi chổ phần tử i và phần tử nhỏ nhất}  
T = A[i]; A[i] = A[min]; A[min] = T;  
end;  
End.  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp kiểu lựa chọn  
– Thời gian thực hiện thuật toán  
z Trường hợp tốt nhất:  
– Dãy ban đầu đã được sắp xếp  
– 0 phép đổi chỗ, chỉ thực hiện n(n-1)/2 phép so sánh  
z Trường hợp xấu nhất  
– n-1 phép đổi chỗ, n(n-1)/2 phép so sánh  
– Độ phức tạp thời gian trung bình O(n2)  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
6
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp kiểu thêm dần – Insertion sort  
z Ý tưởng:  
– Dãy cần sắp được chia thành 2 phần: một là phần đã  
sắp, còn lại là phần chưa sắp  
– Tại mỗi lượt, phần tử đầu tiên trong phần chưa sắp sẽ  
được “thêm” vào đúng vị trí của nó trong phần đã sắp.  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp kiểu thêm dần  
– Ví dụ: Sắp xếp dãy sau theo thứ tự tăng dần:  
z A = {12, 5, 3, 10, 18, 4, 9, 16}  
Lượt 1 Lượt 2 Lượt 3 Lượt 4 Lượt 5 Lượt 6 Lượt 7  
12  
5
5
3
3
3
3
3
3
12  
3
5
5
5
4
4
4
3
12  
10  
18  
10  
12  
18  
10  
12  
18  
5
5
5
10  
18  
10  
18  
10  
12  
9
9
10  
10  
4
4
4
4
4
18  
9
12  
18  
16  
12  
16  
18  
9
9
9
9
9
16  
16  
16  
16  
16  
16  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
7
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp kiểu thêm dần  
Procedure INSERTION-SORT(A,n)  
1. for i := 2 to n do begin  
2. {Chọn phần tử đầu tiên của phần chưa được sắp xếp}  
val := A[i];  
j := i;  
{Tìm vị trí thích hợp đề chèn phần tử A[i] trong phần đã sắp- chứa các phần tử từ  
vị trí 1 đến i-1}  
while ( j > 1) and (A[j-1] > val) do  
begin  
A[j] := A[j-1]; j := j -1;  
end;  
4. {Chèn phần tử A[i] vào vị trí thích hợp}  
A[j] := val; end;  
5. End  
Sắp xếp kiểu thêm dần  
– Sắp xếp thêm dần là tại chỗ và ổn định  
– Thời gian thực hiện giải thuật  
z Trường hợp tốt nhất:  
– Dãy ban đầu đã được sắp xếp  
– 0 thực hiện phép đổi chỗ, n-1 phép so sánh  
z Trường hợp xấu nhất  
– n(n-1)/2 phép đổi chỗ và so sánh  
– Độ phức tạp thời gian trung bình O(n2)  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
8
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp kiểu nổi bọt  
– Ví dụ  
z A = {12, 5, 3, 10, 18, 4, 9, 16}  
Lượt 1 Lượt 2 Lượt 3 Lượt 4 Lượt 5 Lượt 6 Lượt 7  
12  
5
3
3
3
3
3
3
3
12  
5
4
4
4
4
4
4
3
12  
5
5
5
5
5
5
10  
18  
4
4
12  
9
9
9
9
9
10  
18  
9
9
12  
10  
16  
18  
10  
12  
16  
18  
10  
12  
16  
18  
10  
12  
16  
18  
10  
18  
16  
10  
16  
18  
9
16  
16  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp kiểu nổi bọt  
z Ý tưởng:  
– Dãy cần sắp được chia thành 2 phần: một là phần đã  
sắp, còn lại là phần chưa sắp  
– Thông qua phép đổi chỗ, tại mỗi lượt phần tử nhỏ nhất  
trong phần chưa được sắp sẽ được “đẩy dần” lên trước  
và cuối cùng nhập vào phần được sắp.  
Phần chưa sắp  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
9
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp kiểu nổi bọt  
Procedure BUBBLE-SORT(A,n)  
1. for i := 1 to n-1 do  
2. {Duyệt từ đáy}  
for j:= n down to i+1 do  
3. {Kiểm tra 2 phần tử kề cận nhau, nếu ngược thứ tự thì đổi chỗ }  
if A[j] < A[j-1] then  
begin  
X:= A[j];  
A[j] := A[j-1];  
A[j-1] := X;  
end  
4. return  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp kiểu nổi bọt  
– Thời gian thực hiện giải thuật  
z Trường hợp tốt nhất:  
– Dãy ban đầu đã được sắp xếp  
– 0 thực hiện phép đổi chỗ, n(n-1)/2 phép so sánh  
z Trường hợp xấu nhất  
– n(n-1)/2 phép đổi chỗ và so sánh  
– Độ phức tạp thời gian trung bình O(n2)  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
10  
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp Nhanh (Quick Sort)  
– Được đưa ra bởi C. A. Hoare (1962).  
– Là phương pháp sắp xếp dựa trên chiến lược chia để trị  
z Trường hợp cơ sở: Dãy chỉ có 1 phần tử, dãy đã được sắp  
z Chia – Pha phân đoạn  
– Chọn một phần tử trong dãy làm phần tử chốt p  
– Chia dãy đã cho thành 3 nhóm : <p ; p ; >=p  
Chốt  
p
< p  
>=  
p
z Trị:  
– Sắp xếp được tiếp tục một cách đệ qui với nhóm thứ 1 và nhóm  
thứ 3  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp nhanh  
Procedure QUICK-SORT(A, left, right)  
{A là mảng cần sắp, left là chỉ số của phần tử đầu , right là chỉ số của phần tử cuối}  
1. if left < right then begin  
p = PARTITION(A,left, right) ;  
QUICK-SORT(A, left, p-1);  
QUICK-SORT(A, p+1,right);  
end;  
2. return.  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
11  
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp nhanh  
– Pha phân đoạn – Partition  
z Hàm Partition thực hiện chia dãy đầu vào A[left..right]  
thành 2 đoạn  
– A[left, p-1] gồm các phần tử nhỏ hơn hoặc bằng A[p]  
– A[p+1, right] gồm các phần tử lớn hơn hoặc bằng A[p]  
z Gồm hai công đoạn chính  
– Lựa chọn chốt  
– Thực hiện Phân đoạn  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp nhanh  
– Lựa chọn chốt  
z Chọn chốt là phần tử đứng đầu hoặc cuối danh sách  
z Chọn phần tử đứng giữa danh sách làm chốt  
z Chọn phần tử trung vị trong 3 phần tử đứng đầu, đứng  
giữa và đứng cuối danh sách  
z Chọn phần tử ngẫu nhiên  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
12  
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp nhanh  
– Phân đoạn  
Vị trí phải  
Vị trí trái  
Chốt  
Chốt  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp nhanh  
Function PARTITION-LEFT(A,left,right)
{A là mảng cần sắp, left là chỉ số của phần tử đầu , right là chỉ số của phần tử cuối.  
Phần tử chốt là phần tử ở đầu danh sách}  
1. i:=left + 1; j := right; pivot = left // i là khởi đầu của vị trí trái, j là khởi đầu của  
vị trí phải  
2. { Tiến hành duyệt, so sánh, đổi chỗ để hình thành phân đoạn}  
while ( i<=j) do begin  
while (A[i] < A[pivot]) do i := i+1;  
while (A[j] > A[pivot]) do j:= j-1;  
if i < j then begin A[i] <-> A[j]; i := i+1; j := j -1; end  
end  
3. {Đưa chốt về vị trí thực giữa 2 phân đoạn, lưu vị trí thực của phần tử chốt}  
k:= j; A[pivot] <-> A[j];  
4. Return k  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
13  
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp nhanh  
Chọn chốt  
78 21 14 97 87 62 74 85 76 45 84 22  
i = 4 và j = 12, đổi chỗ  
78 21 14 97 87 62 74 85 76 45 84 22  
78 21 14 22 87 62 74 85 76 45 84 97  
i = 5 và j = 10, đổi chỗ  
78 21 14 22 87 62 74 85 76 45 84 97  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp nhanh  
78 21 14 22 45 62 74 85 76 87 84 97  
78 21 14 22 45 62 74 85 76 87 84 97  
78 21 14 22 45 62 74 76 85 87 84 97  
i = 8 và j = 9, đổi chỗ  
i = 9 và j = 8  
Kết thúc phân đoạn  
Đưa chốt về vị trí thực  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
14  
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp nhanh  
Function PARTITION-MID(A, left, right)  
{A là mảng cần sắp, left là chỉ số của phần tử đầu , right là chỉ số của phần tử cuối.  
Phần tử chốt là phần tử ở đầu danh sách}  
1. i:=left ; j := right; pivot = [(left + right ) /2 ]  
{pivot là số nguyên >= (left+right)/2}  
2. repeat  
while (A[i] < A[pivot]) do i := i+1;  
while (A[j] > A[pivot]) do j:= j-1;  
if i <= j then begin A[i] <-> A[j]; i := i+1; j := j -1; end  
until i > j  
4. Return j  
Đỗ Bích Diệp - Khoa CNTT  
Đánh giá giải thuật Sắp xếp nhanh  
– Sắp xếp nhanh là tại chỗ nhưng không ổn định  
– Thời gian thực hiện giải thuật  
z Trường hợp tổng quát  
– T(0) = T(1) = c  
– Pha phân đoạn được thực hiện bằng việc duyệt danh  
sách ban đầu 1 lần Æ Thời gian thực hiện là O(n)  
– Trong giải thuật xuất hiện 2 lời gọi đệ qui: Giả sử sau khi  
phân đoạn, phần tử chốt ở vị trí p thì  
T(n) = T(p-1) + T(n-p) + O(n) + O(1)  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
15  
Cấu trúc dữ liệu và Giải thuật  
Đánh giá giải thuật Sắp xếp nhanh  
z Trường hợp xấu nhất:  
– Công thức đệ qui: T(n) = T(n-1) + O(n) + O(1)  
–
Độ phức tạp của giải thuật sắp xếp nhanh là O(n2) khi A  
vốn đã được sắp và chốt được chọn là nút nhỏ nhất  
z Trường hợp hoàn hảo:  
– Phân đoạn cân bằng T(n) = 2 T(n/2) + n  
– Độ phức tạp trung bình của giải thuật là O(nlog2n)  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp kiểu hòa nhập  
z Tương tự như sắp xếp nhanh dựa vào cơ chế chia để trị  
để thực hiện sắp xếp.  
z Bao gồm 3 bước  
– Chia: Phân chia dãy cần được sắp S gồm n phần tử  
thành 2 dãy con với số phần tử là n/2 S1 và S2  
– Tri: Lần lượt sắp xếp hai dãy con S1 và S2 bằng sắp xếp  
kiểu hòa nhập  
– Tổ hợp: Nhập 2 dãy con đã được sắp S1 và S2 thành một  
dãy duy nhất  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
16  
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp kiểu hòa nhập  
Algorithm MERGE-SORT(S, n)  
{S là dãy cần được sắp xếp, n là số phần tử trong dãy}  
1. if ( n< 2) then return S;  
2. {Chia: Tạo dãy S1 chứa n div 2 phần tử đầu tiên của S, Tạo dãy S2 chứa các  
phần tử còn lại trong S sau khi đã lấy ra các phần tử trong S1}  
(S1, S2) = PARTITION(S, n div 2)  
3. {Lặp}  
1. MERGE-SORT(S1, (n div 2));  
2. MERGE-SORT(S2, (n- (n div 2));  
4. {Trị- Hòa nhập hai dãy được sắp }  
MERGE(S1,S2, S);  
5. Return S;  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp kiểu hòa nhập – Ví dụ minh họa  
z Chia  
7 2 9 4 ⏐ 3 8 6 1 → 1 2 3 4 6 7 8 9  
7 2 9 4 → 2 4 7 9  
3 8 6 1 → 1 3 8 6  
7 2 → 2 7  
9 4 → 4 9  
3 8 → 3 8  
6 1 → 1 6  
7 → 7  
2 → 2  
9 → 9  
4 → 4  
3 → 3  
8 → 8  
6 → 6  
1 → 1  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
17  
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp kiểu hòa nhập - Ví dụ minh họa  
z Lời gọi đệ qui - Chia  
7 2 9 4 ⏐ 3 8 6 1 → 1 2 3 4 6 7 8 9  
7 2 ⏐ 9 4 → 2 4 7 9  
3 8 6 1 → 1 3 8 6  
7 2 → 2 7  
9 4 → 4 9  
3 8 → 3 8  
6 1 → 1 6  
7 → 7  
2 → 2  
9 → 9  
4 → 4  
3 → 3  
8 → 8  
6 → 6  
1 → 1  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp kiểu hòa nhập - Ví dụ minh họa  
z Lời gọi đệ qui - Chia  
7 2 9 4 ⏐ 3 8 6 1 → 1 2 3 4 6 7 8 9  
7 2 ⏐ 9 4 → 2 4 7 9  
3 8 6 1 → 1 3 8 6  
7 ⏐ 2 → 2 7  
9 4 → 4 9  
3 8 → 3 8  
6 1 → 1 6  
7 → 7  
2 → 2  
9 → 9  
4 → 4  
3 → 3  
8 → 8  
6 → 6  
1 → 1  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
18  
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp kiểu hòa nhập - Ví dụ minh họa  
z Lời gọi đệ qui – Trường hợp cơ sở  
7 2 9 4 ⏐ 3 8 6 1 → 1 2 3 4 6 7 8 9  
7 2 ⏐ 9 4 → 2 4 7 9  
3 8 6 1 → 1 3 8 6  
7 ⏐ 2 → 2 7  
9 4 → 4 9  
3 8 → 3 8  
6 1 → 1 6  
7 → 7  
2 → 2  
9 → 9  
4 → 4  
3 → 3  
8 → 8  
6 → 6  
1 → 1  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp kiểu hòa nhập - Ví dụ minh họa  
z Lời gọi đệ qui – Trường hợp cơ sở  
7 2 9 4 ⏐ 3 8 6 1 → 1 2 3 4 6 7 8 9  
7 2 ⏐ 9 4 → 2 4 7 9  
3 8 6 1 → 1 3 8 6  
7 ⏐ 2 → 2 7  
9 4 → 4 9  
3 8 → 3 8  
6 1 → 1 6  
7 → 7  
2 → 2  
9 → 9  
4 → 4  
3 → 3  
8 → 8  
6 → 6  
1 → 1  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
19  
Cấu trúc dữ liệu và Giải thuật  
Sắp xếp kiểu hòa nhập - Ví dụ minh họa  
z Hòa nhập  
7 2 9 4 ⏐ 3 8 6 1 → 1 2 3 4 6 7 8 9  
7 2 ⏐ 9 4 → 2 4 7 9  
3 8 6 1 → 1 3 8 6  
7 ⏐ 2 → 2 7  
9 4 → 4 9  
3 8 → 3 8  
6 1 → 1 6  
7 → 7  
2 → 2  
9 → 9  
4 → 4  
3 → 3  
8 → 8  
6 → 6  
1 → 1  
Đỗ Bích Diệp - Khoa CNTT  
Sắp xếp kiểu hòa nhập - Ví dụ minh họa  
z Lời gọi đệ qui …. Trường hợp cơ sở , Hòa nhập  
7 2 9 4 ⏐ 3 8 6 1 → 1 2 3 4 6 7 8 9  
7 2 ⏐ 9 4 → 2 4 7 9  
3 8 6 1 → 1 3 8 6  
7 ⏐ 2 → 2 7  
9 4 → 4 9  
3 8 → 3 8  
6 1 → 1 6  
7 → 7  
2 → 2  
9 → 9  
4 → 4  
3 → 3  
8 → 8  
6 → 6  
1 → 1  
Đỗ Bích Diệp - Khoa CNTT  
Đỗ Bích Diệp -Khoa CNTT - ĐHBKHN  
20  
Tải về để xem bản đầy đủ
pdf 33 trang baolam 24740 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cấu trúc dữ liệu và Giải thuật - Chương VI: Sắp xếp - Đỗ Bích Diệp", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_cau_truc_du_lieu_va_giai_thuat_chuong_vi_sap_xep_d.pdf