1. Trang chủ
  2. » Thể loại khác

giai thuat sap xep_ thuy nopnhom docx

37 224 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Sắp xếp kiểu đổi chỗ và kiểu vun đống
Trường học Trường Đại học Không rõ
Chuyên ngành Thuật Toán
Thể loại Báo cáo
Năm xuất bản 2014
Thành phố Không rõ
Định dạng
Số trang 37
Dung lượng 2,29 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ý TƯỞNG THUẬT TOÁN.• Giả sử ta có n số cần sắp xếp khi đó: • So sánh hai số liên tiếp: Nếu đúng thứ tự thì để nguyên..  Nhược điểm là nếu dãy đã được sắp xếp thì ta... VUN ĐỐNG Ta cần

Trang 2

SẮP XẾP KIỂU ĐỔI CHỖ (EXCHANGE SORT)

Giải thuật

Ví dụ

Ý Tưởng 1

Viết chương trình

3 4 5

Trang 3

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

• Giả sử ta có n số cần sắp xếp khi đó:

• So sánh hai số liên tiếp:

Nếu đúng thứ tự thì để nguyên.

Nếu ngược thì thứ tự đổi chỗ.

• Sau vòng 1 thì số bé nhất nổi lên ở vị trí 1.

• Sau vòng 2 thì số bé nhất trong n-1 số còn lại nổi

Trang 4

9 2 15 1

1

2 3 4 5 6 7 8

Trang 5

1 2 3 4 5 6 7 8

7 3 9 2 15 1

10 5 i

Trang 6

1 2 3 4 5 6 7 8

7 3 9 2 15

1 10 5

Trang 7

1 2 3 4 5 6 7 8

7 3 9 2

15

1

10 5 i

Trang 8

1 2 3 4 5 6 7 8

7 3

9 2

15

1

10 5 i

Trang 9

1 2 3 4 5 6 7 8

7 3

9 2

15

1

10

5 i

Trang 10

1 2 3 4 5 6 7 8

7 3

9 2

15

1

10

5 i

Trang 11

1 2 3 4 5 6 7 8

7 3

9 2

Trang 12

1 2 3 4 5 6 7 8

7 3

9 2

Trang 13

III GIảI THUậT

Bước 1:

Cho i chạy từ 1 tới n-1 (For i:=1 to n-1 do)

Cho j chạy từ n xuống i+1 (For j:=n downto i+1 do )

Bước 2: Trong khi (j > i) thực hiện so sánh

Nếu a[j]<a[j-1] thì hoán vị a[j] và a[j-1]

Tiếp tục với j = j-1;

Bước 3:

i = i+1;

Nếu i >N-1 (Hết dãy)  Dừng Nếu ngược lại: Lặp lại Bước 2

Trang 14

IV ĐÁNH GIÁ ĐỘ PHỨC TẠP

 Trong mọi trường hợp thì số phép so sánh là:

(n-1)+(n-2)+…+2+1=n*(n-1)/2

Vì vậy độ phức tạp của thuật toán là O(n 2 ).

 Nhược điểm là nếu dãy đã được sắp xếp thì ta

Trang 15

PHƯƠNG PHÁP VUN ĐỐNG

HEAP SORT

Ví Dụ Giải Thuật

Ý Tưởng Thuật Toán Đống Và Vun Đống

Trang 16

I ĐỊNH NGHĨA ĐỐNG

 Đống là một cây nhị phân hoàn chỉnh mà mọi nút cha

đều có trường khóa lớn hơn khóa của hai nút con.Ví dụ

cây sau đây là một đống:

6

5 2

3

8 7

9

Trang 17

II VUN ĐỐNG

 Ta cần sắp xếp lại dãy số đã cho để nó biểu diễn một

đống Ta có một số nhận xét sau:

 Nếu cây nhị phân hoàn chỉnh đã là đống thì các cây con

của các nút(nếu có)cũng là cây nhị phân hoàn chỉnh và

cũng là đống.

 Trên cây nhị phân hoàn chỉnh có n nút thì chỉ có[n/2] nút

cha.

 Một nút lá bao giờ cũng có thể coi là đống

 Để vun một nhánh cây gốc r thành đống,ta có thể coi hai

nhánh con của nó là(nhánh gốc 2r và 2r+1)đã là đống

rồi Thuật toán vun đống sẽ được thực hiện từ dưới lên

đối với cây.Gọi h là chiều cao của cây,nút ở mức h(nút

lá) đã là gốc một đống,ta vun lên để những nút ở mức

h-1 cũng là gốc của đống,…cứ như vậy cho tới nút ở mức

Trang 18

III THUẬT TOÁN VUN ĐỐNG

 Gỉa sử:ta có gốc r và hai nút con là 2r và 2r+1 đã

Trang 20

V Ý TƯỞNG THUẬT TOÁN

của đống là khóa lớn nhất, ta đảo giá trị khóa đó

đống nữa nhưng nó lại biểu diễn cây nhị phân

hoàn chỉnh mà hai nhánh cây ở nút thứ 2 và nút

thứ 3 đã là đống rồi Vì vậy ta chỉ cần vun một

và tiếp tục cho tới khi đống chỉ còn lại một nút

Trang 21

2 16

1

Trang 22

VÍ DỤ

 Ta thực hiện vun từ dưới lên:

 Điều chỉnh cây gốc i=n div 2=3.

Trang 23

VÍ DỤ

 Điều chỉnh cây gốc i=2.

 Điều chỉnh cây gốc i=1.

1

Trang 24

7 10

1

Trang 25

7 10

1

Trang 26

7 2

1

Trang 27

7 8

1

Trang 29

4

Trang 30

4

Trang 31

1

Trang 32

1

Trang 34

VÍ DỤ

 Sắp xếp:đổi chỗ a[1] cho a[2].Ta được dãy sắp xếp là:

A=6,7,8,10,16

Sau khi đổi chỗ thì cây chỉ còn một nút.Khi đó các khóa đã

được sắp xếp vào đúng vị trí của nó trong săos xếp.

Trang 35

VII GIẢI THUẬT

Bước 1: Tạo đống ban đầu

For i:=[n/2] downto 1 do

Call adjust ( i ,n )

Bước 2: Ta so sánh hai nút con để tìm con lớn hơn.

So sánh gốc với con lớn:

Nếu gốc lớn hơn con thì cây nhị phân đã được vun đống.

Nếu For i:=n-1 downto 1 do

Trang 36

VIII ĐÁNH GIÁ.

 Thuật toán gồm hai bước:

Bước 1:Vun cây ban đầu thành đống.

Bước 2:Sắp xếp.

 Cây nhị phân hoàn chỉnh n nút thì chiều cao của

nó không quá [log 2 (n+1)]+1.Độ phức tạp trung

bình của thuật toán là O(nlog 2 n).

Ngày đăng: 18/06/2014, 10:44

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm