1. Trang chủ
  2. » Công Nghệ Thông Tin

Cấu trúc dữ liệu và giải thuật phương pháp chọn trực tiếp selection sort

12 5 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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 đề Cấu Trúc Dữ Liệu và Giải Thuật Phương Pháp Chọn Trực Tiếp Selection Sort
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Cấu Trúc Dữ Liệu và Giải Thuật
Thể loại bài luận
Định dạng
Số trang 12
Dung lượng 429,48 KB

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

Nội dung

Trang 1

THUẬT TOÁN SẮP XÉP

Phương pháp chọn trực tiếp Selection Sort

A = {8, 3, 7, 6, 2, 5} va n=6

Tại mỗi giá trỊ 1, tìm giá trị nhỏ nhất A[min] trong đoạn [I+l, n-Ï] và hoán vị A[min] với A[I]

Bước 1: Tai i=0: khoi tao min=i=0 va tim gia tri nho hon min trong doan [1,5]

> min=4 > hoan vi A[4] voi A[0]

Bwéoc 2: Tai i=1: khoi tao min=i=1 và tìm gia tri nho hon min trong doan [2,5]

> min=!1 > hoan vi A[1] = A[1]

Bước 3: Tại 1=2: khởi tạo min=I=2 và tìm gia tri nho hon min trong doan [3,5]

> min=5 > hoán vị A[5] = A[2]

Bước 4: Tai i=3: khoi tao min=i=3 va tim gia tri nho hon min trong doan [4,5]

> min=3 > hoan vi A[3] = A[3]

Trang 2

Bước 5: Tại 1=4: khởi tạo min=I=4 và tìm gia tri nho hon min trong doan [5,5]

> min=5 > hoán vị A[5] = A[4]

Phương pháp chèn trực tiếp Insertion sort

A = {8, 3, 7, 6, 2, 5} va n=6

Bước 1: Chèn A[I |E3=e vào đoạn [0,0] sao cho ta duoc doan [0,1] c6 thir tu

Bước 2: Chen A[2]=7 vao doan [0,1] sao cho ta duoc doan [0,2] co thir tu

Trang 3

Phương phap dém Counting Sort

Mang A = {8, 3, 7, 6, 8, 5}

0 1 2 3 4 5

NI

Bước 1: Khởi tạo giá trị các phần tử của mảng B = {0}

5

Mang B | 0 | 0 01010 0 0 0 0

Bước 2: Gán gia tri B[A[i]]++

Mang B | 0 | 0 0|110 I I I 2

Bwoc 3: Thuc hién B[i]=B[i] + B[i-1]

Mang B | 0 | 0 O;1}1 2 3 4 6

Bước 4: Duyệt ¡ = 5 > 0, tại mỗi giá trị của ¡ thực hiện:

BỊAIHII- CIBIAHIII = AI

Trang 4

1=U: > B[A[ï]lEB[8]-1=5-1=4 Mang B | 0} 0} 0 O 123 45 67 8 > C[4] =8

Trang 5

Phương pháp cơ số Radix Sort

Giả sử A={352, 9, 286, 83, 177}, m = 3, k=10 và thứ tự cân sắp xếp < (tăng dân)

4

Sắp xếp | Hàng đơn vị | Hàng chục | Hàng trăm

Hàng đơn vi: 352, 83, 286, 177, 9

Hang chuc : 9, 352, 177, 83, 286

Thuật toán sắp xếp

- - Tên thuật toán: TA, TV

- Y tưởng, độ phức tạp thuật toán

- _ Thuật toán: input / Output và các bước thuật toán

- _ Code trên mảng I chiều hoặc trên dslk

- _ Quá trình tính toán

Trang 6

Thuật toán sắp xếp (tiếp theo)

HEAP SORT

A={12,2,8,5,1,6,4, 15}

Phần tử liên đới của ¡ 3 (2*i + 1, 2*i + 2)

Alil> A[2*i + 1]

Alil> A[2*i + 2]

Hiệu chỉnh và săp xêp trên đoạn n=8

Bước l: Hiệu chỉnh và sắp xếp trên mảng A = {12, 2, 8, 5, 1, 6, 4, 15}, n=8 lần lượt từng

vi tri i tir n/2 -1 đến 0

Taii=3

0

12

0

12

5

Trang 7

Khi hoán vị 2 và 15 làm ảnh hưởng đến nhánh

bên dưới 2 trở thành node cha của 5 Cần hiệu

chỉnh tiếp nhánh bên dưới sao cho thõa đk

A[il > A[2*i + 1] và A[i] > A{2*i + 2|

Đây gọi là hiệu chỉnh lan truyền

15, 12,8, 5, 1,6, 4, 2 hoán vị vị trí đầu cuối 2, 12, 8, 5, 1,6, 4, 15

Trang 8

Bước 2: Hiệu chỉnh và sắp xếp trên mảng A = {2, 12, 8, 5, 1, 6, 4}, n=7 lần lượt từng vị

tríi = n⁄2 -l 0

Taii=0O

0

12

12,5, 8, 2, 1, 6, 4 hoán vị vị trí đầu cuối > 4, 5, 8, 2, 1, 6, 12

Trang 9

Bước 3: Hiệu chỉnh và sắp xếp trên mang A = {4, 5, 8, 2, 1, 6}, n=6 lần lượt từng vị trí i

= n2 -l >0

0

1 ———

5 1 8 2

2 1 3 3 4 5 4

8,5,6, 2, 1,4 hoán vị vị trí đầu cuối > 4, 5, 6, 2, 1,8

Trang 10

Bước 4: Hiệu chỉnh và sắp xếp trên mảng A = {4, 5, 6, 2, 1}, n=5 lần lượt từng vị trí ¡ =

n2 -lI >0

0

6

6,5, 4, 2, | hodn vi vi tri dau cuéi > 1,5, 4, 2, 6

Tương tự các bước còn lại ta có kết quả mang A đã được sắp xếp

A= {1, 2, 4,5, 6, 8, 12, 15}

Trang 11

QUICK SORT

A= {12, 2, 8,5, 1, 6,4, 15}

Left = 0 ] 2 3 4 5 6 Right = 7

Chon tity y phan ttr X trong doan [left, right] > chon phan tir 6 gitra (left+right)/2

Với gia tri khoi tao i = left, trong khi A[i] < X > i++

V6i gid tri khoi tao j = right, trong khi A[j] > X > j—

>> Sau khi tính toán, nếu ¡ < j thì hoán vị A[ï] với A[j]

Bước I1: Xét trên đoạn [0,7] và X = 5

Kết quả tính toán được 1=0 và J=6 © hoán vị (A[0], A[6]) > i=1 va j=5

Két qua tinh todn duoc i=2 va j=4 > hodn vi (A[2], A[4]) > ¡=3 và j=3

Khi i = j > Phan hoach 2 doan [0,3] va [3,7]

Trang 12

Bước 2.1: Xét trên đoạn [0,3] va X = 2

Hoán vị (4,1) > Kết quả:

=> i=j > Phan hoach 2 doan [0,1] va [1,3]

Bước 2.1.1: Xét trén doan [0,1] va X = 1

void quickSort(int *a, int left, int right)

if (left >= right) return;

int x = a[(left+right)/2], 1 = left, } = right; while( < J)

~~ |

i=j=0 while (a[i] < x) i++;

whnle (a|J| > x) J ;

1f(left < J) quickSort(a, left, j);

j=-l 0 i=] if < right) quickSort(a, 1, right);

1 2

>> dừng phân hoạch do left > j vai = right

Bước 2.1.2: Xét trên đoạn [1,3] và X = 4

Bước 2.2: Xét trên đoạn [3,7] và X = 6

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

Hoán vị (8,6) > Kết quả:

3 j=4 i=5 6 7

=> i>j 7 Phan hoach 2 doan [3,4] va [5,7]

Bước 2.2.1: Xét trén doan [3,4] va X =5

Bước 2.2.2: Xét trén doan [5,7] va X = 8

Ngày đăng: 13/02/2025, 12:41

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w