© Dương Thành Phết-www.thayphet.net Giải thuật: Bước 1: i=1; Bước 2: j=N; Trong khi j>i thực hiện: Nếu a[j]N-1: Hết dãy, dừng Ngược lại: Lặp lại Bước 2 Khoa CNTT Trường Cð CNTT TP.HCM T
Trang 1© Dương Thành Phết-www.thayphet.net
Giải thuật:
Bước 1:
i=1;
Bước 2:
j=N;
Trong khi (j>i) thực hiện:
Nếu a[j]<a[j-1]: Hoán vị a[j] và a[j-1] j—;
Bước 3:
i=i+1;
Nếu i>N-1: Hết dãy, dừng Ngược lại: Lặp lại Bước 2
Khoa CNTT Trường Cð CNTT TP.HCM
This is trial version www.adultpdf.com
Trang 2© Dương Thành Phết-www.thayphet.net
Cài ðặt
void bubblesort(t M[],int N)
{
for ( int i=0 ; i<N-1 ; i++)
for(int j=N-1 ; j>i ; j )
if(M[j]<M[j-1]) {
int tam=M[j];
M[j]=M[j-1];
M[j-1]=tam;
} }
Khoa CNTT Trường Cð CNTT TP.HCM
This is trial version www.adultpdf.com
Trang 3ẹ Dương Thành Phết-www.thayphet.net
đánh giá giải thuật:
Đối với giải thuật nổi bọt, số lượng các phép so sánh xảy ra không phụ thuộc vào tình trạng của dãy
số ban ựầu
Nhưng số lượng phép hoán vị thực hiện tùy thuộc vào kết qủa so sánh
Khoa CNTT Trường Cđ CNTT TP.HCM
This is trial version www.adultpdf.com
Trang 4© Dương Thành Phết-www.thayphet.net
Ý Tưởng:
Phân hoạch dãy M thành 2 dãy con thỏa mãn ñiều kiện: “1/2 Dãy bên trái chứa các phần tử nhỏ hơn các phần tử của 1/2 Dãy bên phải”
Nếu dãy con có nhiều hơn 1 phần tử thì thực hiện sắp xếp dãy con (ðệ qui)
2.2.6.Giải Thuật Sắp Xếp Nhanh – Quick Sort
Khoa CNTT Trường Cð CNTT TP.HCM
This is trial version www.adultpdf.com
Trang 5© Dương Thành Phết-www.thayphet.net
Minh Họa
Cho dãy có 8 phần tử Sắp xếp theo vi trí tăng dần
ðoạn cần
sắp xếp
L=1
R=8
i=1; j=8
ðoạn 1
L=1 R=3
ðoạn 2
L=4 R=8
Khoa CNTT Trường Cð CNTT TP.HCM
This is trial version www.adultpdf.com
Trang 6© Dương Thành Phết-www.thayphet.net
Minh Họa
Cho dãy có 8 phần tử Sắp xếp theo vi trí tăng dần
ðoạn cần
sắp xếp
i=4; j=8
L=1
R=3
L=4
R=8
L=4 R=5
L=5 R=8
Khoa CNTT Trường Cð CNTT TP.HCM
This is trial version www.adultpdf.com
Trang 7© Dương Thành Phết-www.thayphet.net
Minh Họa
Cho dãy có 8 phần tử Sắp xếp theo vi trí tăng dần
ðoạn cần
sắp xếp
i=5; j=8
L=1
R=3
L=4
R=5
L=6 R=8
L=5
R=8
ðoạn 2
Khoa CNTT Trường Cð CNTT TP.HCM
This is trial version www.adultpdf.com
Trang 8© Dương Thành Phết-www.thayphet.net
Minh Họa
Cho dãy có 8 phần tử Sắp xếp theo vi trí tăng dần
ðoạn cần
sắp xếp
i=6; j=8
L X=15 R
L=1
R=3
L=4
R=5
L=6
R=8
L=6 R=7
ðoạn 1
Khoa CNTT Trường Cð CNTT TP.HCM
This is trial version www.adultpdf.com
Trang 9© Dương Thành Phết-www.thayphet.net
Minh Họa
Cho dãy có 8 phần tử Sắp xếp theo vi trí tăng dần
ðoạn cần
sắp xếp
i=6; j=7
X=15
L=1
R=3
L=4
R=5
L=6
R=7
Khoa CNTT Trường Cð CNTT TP.HCM
This is trial version www.adultpdf.com
Trang 10© Dương Thành Phết-www.thayphet.net
Minh Họa
Cho dãy có 8 phần tử Sắp xếp theo vi trí tăng dần
ðoạn cần
sắp xếp
i=4; j=5
X=5
L=1
R=3
L=4
R=5
Khoa CNTT Trường Cð CNTT TP.HCM
This is trial version www.adultpdf.com