Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 6: Giải thuật sắp xếp - Trường Đại học Công nghiệp Thực phẩm Tp. Hồ Chí Minh

7 27 1
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 6: Giải thuật sắp xếp - Trường Đại học Công nghiệp Thực phẩm Tp. Hồ Chí Minh

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

Thông tin tài liệu

[r]

(1)

Chương 6: Giải thuật sắp xếp

1 Sắp xếp chọn (Selection Sort) 2 Sắp xếp chèn (Insert Sort) 3 Sắp xếp nổi bọt (Bubble Sort) 4 Sắp xếp nhanh (Quick Sort) 5 Sắp xếp vun đống (Heap Sort) 6 Sắp xếp hòa nhập (Merge Sort)

Ngô Công Thắng Bài giàng CTDL&GT - Chương 06 6.1

1 Sắp xếp chọn (Selection Sort)

1.1 Phương pháp

• Giả sử cần sắp xếp tăng dần một dãy khố a1, a2, , an.

• Ý tưởng của thuật toán như sau:

– Chọn phần tử có khố nhỏ nhất – Đổi chỗ với phần tử a1

(2)

1.1 Phương pháp (tiếp)

• Ví dụ:

Cho dãy khoá ban đầu là: 6, 10, 1, 8, 9 với n=5.

i=1 1, 10, 6, 8, 9 i=2 1, 6, 10, 8, 9 i=3 1, 6, 8, 10, 9 i=4 1, 6, 8, 9, 10

Ngô Công Thắng Bài giàng CTDL&GT - Chương 06 6.3

1.1 Phương pháp (tiếp)

Procedure selectionSort(a,n); For i:= to n-1 Do

Begin

1) {Tìm phần tửnhỏnhất vịtrí k } +) k:=i;

+) For j:=i+1 To n Do

If a[j] < a[k] then k:=j

2) {Đổi chỗ phần tử nhỏ vị trí k cho vịtrí i} If k ≠ i then a[k]↔a[i];

(3)

2 Sắp xếp chèn (Insert Sort)

2.1 Phương pháp

• Phương pháp được những người chơi hay

dùng.

• Giả sử cần sắp xếp tăng dần dãy khoá a1, a2, , an Ý

tưởng thuật toán như sau:

– Các phần tửđược chia thành dãy đích: a1, , ai-1 (kết quả)

và dãy nguồn ai, , an

– Bắt đầu với i=2, bước phần tử thứ i dãy nguồn

được lấy chèn vào vị trí thích hợp dãy đích cho dãy đích tăng dần Sau i tăng lên lặp lại

Ngơ Công Thắng Bài giàng CTDL&GT - Chương 06 6.5

2.1 Phương pháp

• Ví dụ: Cho dãy khố 6, 10, 1, 7, với n=5 (dãy số có phần tử).

Dãy đích Dãy nguồn

6 10, 1, 7, 4

i=2 6, 10 1, 7, 4

i=3 1, 6, 10 7, 4

i=4 1, 6, 7, 10 4

(4)

Thủ tục chèn

Procedure insertSort(a,n) 1) a[0]:=-∞

2) For i:=2 to n Do Begin

tg:=a[i]; j:=i-1; While tg<a[j] Do

Begin

a[j+1]:=a[j]; j:=j-1; End;

a[j+1]:=tg; {đưa tg vào vi trí, chèn vào sau j} End;

Return

Ngô Công Thắng Bài giàng CTDL&GT - Chương 06 6.7

2.2 Đánh giá thuật tốn

• Phép tốn tích cực thuật tốn

phép so sánh (tg<a[j]) Số phép tốn so sánh C

được tính như sau:

– Trường hợp thuận lợi nhất dãy khoá a1, a2, , an

đã được sắp, như vậy mỗi lần chỉ cần phép so

(5)

2.2 Đánh giá thuật tốn

• Trường hợp xấu dãy khoá theo thứ tự ngược với

thứ tự xếp lượt i cần có: C= (i-1) phép so sánh Do

• Trường hợp trung bình: Giả sử giá trị khố xuất

đồng khả trung bình phép so sánh lượt thứ i Ci= i/2, số phép so sánh trung bình giải thuật là:

• O(n2)

Ngơ Công Thắng Bài giàng CTDL&GT - Chương 06 6.9

3 Sắp xếp sủi bọt (Bubble Sort)

3.1 Phương pháp

• Giả sử cần sắp xếp tăng dần dãy khoá a1, a2, , an Ý

tưởng thuật toán như sau:

– So sánh cặp phần tử liền kềgối từ phải qua

trái,nếu phần tử đứng sau nhỏ đứng trước đổi

chỗ Kết lần thứ phần tử nhỏ dãy

được đẩy lên vị trí (gọi phần tử sắp)

– Tiếp tục đổi chỗ phần tử liền kề dãy chưa sắp, lần thứ ta phần tử nhỏ dãy

đưa vị trí

(6)

3.1 Phương pháp (tiếp)

• Ví dụ: Cho dãy khoá ban đầu là: 6, 3, 7, 10, 1, với n=6.

6, 3, 7, 10, 1, 8 i=1 1, 6, 3, 7, 10, i=2 1, 3, 6, 7, 8, 10 i=3 1, 3, 6, 7, 8, 10 i=4 1, 3, 6, 7, 8, 10 i=5 1, 3, 6, 7, 8, 10

Ngô Công Thắng Bài giàng CTDL&GT - Chương 06 6.11

Thủ tục sắp xếp nổi bọt

Procedure bubbleSort(a,n) For i:= to n-1 Do

For j:= n downto i+1 Do If a[j]<a[j-1] then

(7)

3.2 Đánh giá thuật tốn

• Giải thuật tương tự như giải thuật sắp xếp bằng

cách chọn trực tiếp (mục 1), đó có:

• Nhận xét: Với phương pháp sắp xếp trên, nếu n

vừa nhỏ phương pháp chèn trực tiếp (insert

sort) tỏ tốt hơn, nếu với n lớn cả phương

pháp đều có cấp O(n2), đây một chi phí thời gian

khá cao.

Ngơ Cơng Thắng Bài giàng CTDL&GT - Chương 06 6.13

4 Sắp xếp nhanh (Quick Sort)

4.1 Phương pháp

• Sắp xếp nhanh (quick sort) cịn được sắp xếp phân

đoạn (partition sort).

• Ý tưởng thuật toán:

– Chọn ngẫu nhiên phần tử x

– Duyệt từ bên trái mảng có phần tử ai>=x

– Sau duyệt từ bên phải mảng có phần tử aj=<x

– Đổi chỗ ai aj

Ngày đăng: 01/04/2021, 15:53

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan