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

Thuật Toán Sắp Xếp

12 1,4K 21
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 đề Thuật Toán Sắp Xếp
Tác giả Lê Sỹ Vinh
Trường học Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Chuyên ngành Khoa Học Máy Tính
Thể loại Bài Tập/Thực Hành
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 12
Dung lượng 126,63 KB

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

Nội dung

Trong hai thập kỷ qua, mô phỏng thuật toán đã được các nhà sư phạm của ngành công nghệ thông tin sử dụng như một công cụ có tính chất giúp đỡ trong việc dạy các thuật toán đồ thị, các thuật toán sắp xếp, … khác nhau bằng máy

Trang 1

Sap xép (phan 2)

Lé SY Vinh

Bộ môn Khoa Hoc May Tinh — Khoa CNTT

Dai Hoc Cong Nghé - DHQGHN

vinhbio @ gmail.com

Trang 2

Bài toán sắp xêp

Input:

Danh sách các đối tượng A = (đ„ ,đ,,)

Problem: Đôi chỗ các phân tử để thu được một danh sách mới, trong đó các

phân tử được sắp xêp theo một thứ tự nào đó

Output:

A'=(a d „) la,<a' i+]? i=Q n- |

Vi du:

A=(1,5,0,3)— (0, 1, 3, 5)

A= (‘Vinh’, “Tuan’, “Anh’) — (‘Anh’, ‘Vinh’, “Tuan)

Trang 3

Sap xép nhanh (Quick sort)

Tư tưởng của Quick sort: Phân chia danh sách dữ liệu cân sắp xếp ra thành hai phân “phân bên trái” và “phân bên phải” sao cho các phân tử ở phân bên trái nhỏ hơn hoặc băng các phân tử ở phân bên phải Sau khi phân chia,

tiếp tục thực hiện “quIck sort trên hai phân dữ liệu trên

Cu thé hon, gọi “pivot” là phân tử trung tâm của danh sách, các phân tử nhỏ hơn hoac bang “pivot” thi nam bén trai “pivot”, các phân tử lớn hơn hoac bang “pivot” thi nam bén phai “pivot”

Trang 4

31459268 7

|

|

}

Trang 5

Quick sort

Void quickSort (Item A[], int start, int end) {

if (start < end) {

pivotLocation = partition (A, start, end); quickSort (A, start, pivotLocation — 1); quickSort (A, pivotLocation + 1, end)

Trang 6

Partition (A, start, end)

Tư tưởng phân chia: Danh sách gồm ba phân:

— Phân bên trái (các giá trị nhỏ hơn pivot)

— Phân bên phải (các giá trị lớn hơn pivot)

— Phân ở giữa chưa được phân chia

Duyệt trên danh sách để mở rộng dân phân bên trái và phân bên phải, đồng thời thu hẹp phân chưa được phân chia, cho đến khi phân chưa được phân chia bang

rông

Trang 7

Partition (A, start, end)

Khởi tạo: Phân bên trái và phân bên bằng rỗng Phân chưa được phân chia từ

vi tri start — end Xac dinh pivot = A[start]

Bước 1: Duyệt từ trái sang phải của phân chưa được phân chia, nêu phân tử hiện tại nhỏ hơn hoặc băng pivot thì mở rộng phân bên trái và thu hẹp

phân chưa được phân chia, nêu không dừng lại

Bước 2: Duyệt từ phải sang trải của phần chưa được phân chia, nêu phân tử hiện tại lớn hơn hoặc băng pivot thì mở rộng phân bên phải và thu hẹp

phân chưa được phân chia, nêu không dừng lại

Bước 3: Đối chỗ phân tử bên trái nhất và phân tử bên phải nhất của phân chưa

được phân chia Mở rộng phân bên trái và phân bên phải, đồng thời thu hẹp

hai đầu của phân chưa được phân chia

Bước 4: Nếu phân chưa được phân chia khác rỗng thì quay lại Bước 1

Bước 5: Chuyên pivot vào đúng vị trí

Trang 8

Vi du

Sap xép day s6 sau bang quick sort

© 314592687

Trang 9

Trường hợp tốt nhât

3 1 459268 7

l

31459268 7

\

312459 6 8 7

3 1 2 4 9 6 8 7

312 4 968 7

1 2 4 3 6 7 89

“TS | rl*s

Yt T(n) =

123456789

O(n logn)

Trang 10

Truong hop tôi nhất

1 2 3 4 5€ 789

J

345678 9

CK cC -

2345678 9

|

23456789

T<—

¬¬

¬

45678 9

|

456789

oy

123456789

Trang 11

Nhan xét vé quick sort

- Tho gian trung binh: O(n log n)

- LA mot thuat todn sap xép nhanh nhất trong thực tế

Trang 12

Bucket sort

“ "“^

O 123 4 5 67 8 9

Ngày đăng: 16/08/2013, 16:24

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w