Tải bản đầy đủ (.pptx) (9 trang)

PP sắp xếp nổi bọt

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 (183.65 KB, 9 trang )

PHƯƠNG PHÁP SẮP XẾP NỔI BỌT

Sinh viên thực hiện: Bùi Văn Hùng


Ý tưởng thuật tốn

1

4

2

Thủ tục

3

Ví dụ

Độ phức tạp


1. Ý TƯỞNG THUẬT TOÁN

Giả sử cần sắp xếp dãy gồm n phần tử a[1..n].
Đi từ trái sang phải mảng A. nếu gặp 2 phần tử kề nhau mà ngược thứ tự sắp xếp (Khóa của phần tử trước lớn hơn khóa
của phần tử sau) thì đổi chỗ chúng cho nhau. Kết thúc bước đầu tiên A[n], ta được có giá trị lớn nhất trong dãy. Còn các phần
tử nhỏ hơn sẽ được “nổi” dần lên trên.
Lặp lại quá trình trên với các đoạn đầu a[1..i] với I chạy giảm từ n xuống đến 2, ta sẽ nhận được toàn bộ dãy a[1..n]
được sắp xếp.



2. THỦ TỤC

Procedure BUBBLE_SORT(Var A:MT, n:integer)
Var i,j:Integer;
Begin
For i:=n downto 2 do
For j:=1 to i-1 do
If A[j] > A[j+1] then SWAP(A[i],A[j+1]);
End;


SẮP XẾP NỔI BỌT (BUBBLE SORT)

i

8

15

3

10

5

9


3. VÍ DỤ


Cho dãy khóa sắp xếp: 8 15

3

10

5

9

Có thể biểu diễn quá trình trên như sau:

A[1]

A[2]

A[3]

A[4]

A[5]

A[6]

8

15

3


10

5

9

6

8

3

10

5

9

15

5

3

8

5

9


10

15

4

3

5

8

9

10

15

3

3

5

8

9

10


15

2

3

5

8

9

10

15

i


4. ĐỘ PHỨC TẠP

Phép tốn tích cực: Phép tốn so sánh
ở lần lặp thứ i, phép so sánh được thực hiện (i-1) lần.
ta có:
n

Tmax (n) = Ttb (n) = Tmin (n) = ∑ (i − 1) =
i =2


(n − 1)n
= O (n 2 )
2


Nhận xét:

•Trường hợp tại bước thứ i, các phần tử đều nằm đúng thứ tự thì ta có thể dừng thuật tốn ln.
•Vậy ta có thể cải tiến thủ tục trên bằng cách thêm vào một biến kiểm tra kiểu Boolean, biến này sẽ nhận giá trị True nếu
dãy đã sắp xếp đúng thứ tự và nhận giá trị False trong trường hợp ngược lại.


Procedure BUBBLE_SORT(Var A:MT; n:integer);
Var

i,j: Integer;
kt:Boolean;

Begin
i:=n;
Kt:=False;
While (i>=2) and (not kt) do
Begin
Kt:=True;
For j:=1 to i-1 do
If A[j] > A[j+1] then
Begin
SWAP(A[i],A[j+1]);
Kt:=False;
End;

Dec(i);
End;
End;



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

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