1. Trang chủ
  2. » Tất cả

4 sap xep

18 0 0

Đ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
Trường học Đại học Công nghệ Thông tin - Đại học Quốc gia thành phố Hồ Chí Minh
Chuyên ngành Data Structures & Algorithms
Thể loại Bài tập
Năm xuất bản 2018
Thành phố Hồ Chí Minh
Định dạng
Số trang 18
Dung lượng 3,73 MB

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

Nội dung

Interchange Sort – Đổi chỗ trực tiếp.. Binary Insertion Sort – Chèn nhị phân... Đổi chỗ trực tiếp Interchange Sort Đổi chỗ trực tiếp Interchange SortĐổi chỗ trực tiếp Interchange Sort Ng

Trang 1

CẤU TRÚC DỮ LIỆU VÀ GIẢI

THUẬT

Data Structures & Algorithms

SẮP XẾP

Nội dung

1 Bài toán sắp xếp

2 Tổng quan các phương pháp sắp xếp nội

3 Interchange Sort – Đổi chỗ trực tiếp

4 Selection Sort – Chọn trực tiếp

5 Bobble Sort – Nổi bọt

6 Shaker Sort - Nổi bọt cải tiến

7 Insertion Sort – Chèn trực tiếp

8 Binary Insertion Sort – Chèn nhị phân

Trang 2

Đổi chỗ trực tiếp (Interchange Sort) Đổi chỗ trực tiếp (Interchange Sort)

Đổi chỗ trực tiếp (Interchange Sort)

Nghịch thế

Đổi chỗ trực tiếp (Interchange Sort)

Trang 3

Interchange Sort – Độ Phức Tạp

12

0

1

i

j

Interchange Sort – Minh Họa

Interchange Sort – Minh Họa

1

0

2

0

i

j

Interchange Sort – Minh Họa

1

0

4

0

i

j

Interchange Sort – Minh Họa

1

0

5

0

i

j

Interchange Sort – Minh Họa

1

1

Trang 4

• Cho dãy số a:

j=1

i=0

i=1 j=2

i=1 j=3

i=1 j=4

i=2 j=4

i=3 j=5

i=5 j=6 i=4 j=6 i=4 j=5

i=6 j=7

Trang 5

Interchange Sort – Bài Tập

Cho biết kết quả theo từng bước khi áp dụng thuật toán

Interchange Sort sắp xếp dãy sau theo chiều tăng dần

45, 7, 12, 33, 21, 5, 2, 57, 15,

Selection Sort – Chọn trực tiếp

Trang 6

Selection Sort Selection Sort – Minh Họa

12

i

0

Vị trí nhỏ nhất(0,7) Swap(a[0], a[4])

Selection Sort – Minh Họa

1

i

min

0

Vị trí nhỏ nhất(1,7) Swap(a[1], a[1])

Selection Sort – Minh Họa

1

i

min

0

Vị trí nhỏ nhất(2,7) Swap(a[2], a[6])

Selection Sort – Minh Họa

1

i

min

0

Vị trí nhỏ nhất(3, 7) Swap(a[3] , a[3])

Selection Sort – Minh Họa

1

i

min

0

Vị trí nhỏ nhất(4, 7) Swap(a[4], a[5])

Trang 7

Selection Sort – Minh Họa

1

i

min

0

Vị trí nhỏ nhất(5,7) Swap(a[5], a[6])

Selection Sort – Minh Họa

1

i

min

0

Vị trí nhỏ nhất(6, 7)

• Cho dãy số a:

Selection Sort – Minh Họa

i=0

Selection Sort – Minh Họa

Trang 8

i=2

i=3

i=4

Selection Sort – Minh Họa

i=6 i=5

Selection Sort – Minh Họa

Selection Sort– Bài Tập

Cho biết kết quả theo từng bước khi áp dụng thuật toán

Selection Sort sắp xếp dãy sau theo chiều tăng dần

45, 7, 12, 33, 21, 5, 2, 57, 15,

Bubble Sort – Nổi bọt

Bài toán: Hãy đẩy phần tử lớn từ cuối dãy lên đầu dãy

dựa vào việc so sánh các cặp kề nhau

Trang 9

Xuất phát từ cuối dãy (hoăc đầu dãy), đổi chỗ các

cặp phần tử kế cận để đưa phần tử nhỏ hơn trong

cặp phần tử đó về vị trí đúng đầu dãy hiện hành, sau

đó sẽ không xét đến nó ở bước tiếp theo, do vậy ở

lần xử lý thứ i sẽ có vị trí đầu dãy là i

Lặp lại xử lý trên cho đến khi không còn cặp phần tử

nào để xét

Bubble Sort – Ý tưởng

Bubble Sort – Ý tưởng

51

Bubble Sort – Minh Họa

12

0

j

1

52

Bubble Sort – Minh họa

1

0

i

j

2

Bubble Sort – Minh họa

1

0

j

4

Bubble Sort – Minh họa

1

0

j

5

Trang 10

55

Bubble Sort – Minh họa

1

0

i

j

6

56

Bubble Sort – Minh họa

1

0

i

j

8

57

Bubble Sort – Minh họa

1

1

i

j

15

12

{ int i, j;

for (i = 0 ; i<n-1 ; i++)

for (j =n-1; j >i ; j )

if (a[j]< a[j-1])// nếu sai vị trí thì đổi chỗ Swap(a[j], a[j-1]);

}

Bubble Sort – Cài đặt

• Cho dãy số a:

i=

0

i=

4

Bubble Sort – Ví dụ

i=0 j=1 i=0 j=2 i=0 j=3

Trang 11

i=1 j=3

i=2 j=4

i=5 i=4 j=6 i=3 j=5

Bubble Sort– Độ Phức Tạp

Bubble Sort– Bài Tập

Cho biết kết quả theo từng bước khi áp dụng thuật toán

Bubble Sort sắp xếp dãy sau theo chiều tăng dần

45, 7, 12, 33, 21, 5, 2, 57, 15,

• Trong mỗi lần sắp xếp, duyệt mảng theo 2 lượt từ 2 phía khác nhau:

 Lượt đi: đẩy phần tử nhỏ về đầu mảng

 Lượt về: đẩy phần tử lớn về cuối mảng

Shaker Sort– Đặt vấn đề

Trang 12

Shaker Sort– Thuật toán Shaker Sort– Thuật toán

Trang 13

Shaker Sort – Ví dụ Shaker Sort – Ví dụ

Trang 14

Insertion Sort– Chèn trực tiếp Insertion Sort– Chèn trực tiếp

Trang 15

Insertion Sort– Chèn trực tiếp Insertion Sort– Chèn trực tiếp

12

0

Trang 16

Insertion Sort – Minh Họa

12

i

x

0

pos

2

Insert a[1] into (0,0)

Insertion Sort – Minh Họa

2

i

x

0

pos

Insert a[2] into (0, 1)

8

Insertion Sort – Minh Họa

2

i

x

0

pos

Insert a[3] into (0, 2)

5

Insertion Sort – Minh Họa

2

i

x

0

pos

Insert a[4] into (0, 3)

1

Insertion Sort – Minh Họa

1

i

x

0

pos

Insert a[5] into (0, 4)

6

Insertion Sort – Minh Họa

1

i

x

0

pos

Insert a[6] into (0, 5)

4

Trang 17

Insertion Sort – Minh Họa

1

i

x

0

pos

Insert a[8] into (0, 6)

15

Insertion Sort – Minh Họa

1

pos

0

i=1

i=2

Insertion Sort – Minh Họa

i=3

i=4

Insertion Sort – Minh Họa

i=6

Insertion Sort – Minh Họa

Trang 18

Insertion Sort– Độ Phức Tạp Insertion Sort– Độ Phức Tạp

Insertion Sort– Bài Tập

Cho biết kết quả theo từng bước khi áp dụng thuật toán

Insertion Sort sắp xếp dãy sau theo chiều tăng dần

45, 7, 12, 33, 21, 5, 2, 57, 15,

Binary Insertion Sort– Chèn nhị phân

Insertion Sort chèn vào một dãy đã sắp xếp !

Tìm kiếm chỗ để chèn?

Cải tiến Insertion Sort bằng cách tìm vị trí cần chèn bằng thuật tìm kiếm nhị phân, sau đó thực hiện việc chèn !

{

int l,r,m,i;

int x;//lưu giá trị a[i] tránh bị ghi đè khi dời chỗ các phần tử

for(int i=1 ; i<n ; i++)

{ x = a[i]; l = 0; r = i-1;

while(<=r) // tìm vị trí chèn x

if(x < a[m]) r = m-1;

}

for(int j = i-1 ; j >=l ; j )

a[j+1] = a[j] ;// dời các phần tử sẽ đứng sau x

}

}

Binary Insertion Sort– Chèn nhị phân

108

Ngày đăng: 25/02/2023, 15:25

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w