Câu hỏi:

12/06/2023 238

Em hãy giải thích tại sao lại nói thuật toán sắp xếp nhanh (QuickSort) theo chiến lược “chia đề trị”.

Siêu phẩm 30 đề thi thử THPT quốc gia 2024 do thầy cô VietJack biên soạn, chỉ từ 100k trên Shopee Mall.

Mua ngay

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

Thuật toán QuickSort được xây dựng theo chiến lược "chia để trị" bởi vì nó phân chia dãy số cần sắp xếp thành các phần nhỏ hơn, sau đó sắp xếp từng phần đó và kết hợp các phần đã sắp xếp lại thành dãy số đã được sắp xếp.

Cụ thể, thuật toán QuickSort chia dãy số cần sắp xếp thành hai phần dựa trên một phần tử được gọi là pivot. Tất cả các phần tử nhỏ hơn pivot được đưa về bên trái pivot, còn các phần tử lớn hơn pivot được đưa về bên phải pivot. Sau đó, thuật toán đệ quy được áp dụng lên từng phần của dãy số này, cho đến khi các phần con chỉ còn duy nhất một phần tử. Cuối cùng, các phần đã sắp xếp lại với nhau để tạo ra dãy số đã được sắp xếp.

Vì vậy, chiến lược "chia để trị" của QuickSort cho phép thuật toán chia nhỏ vấn đề lớn hơn thành các vấn đề nhỏ hơn, giúp cho việc giải quyết các vấn đề này trở nên đơn giản và hiệu quả hơn."

Quảng cáo

book vietjack

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Câu 1:

Dựa trên mã giả thuật toán phân đoạn Lomuto cho trong Hình 2, em hãy:

1. Mô tả diễn biến từng bước thực hiện phân đoạn Lomuto khi đầu vào là dãy 6 số nguyên tăng dần, ví dụ {1,2,3,4,5,6}

2. Tính số phép toán sơ cấp thực hiện phân đoạn Lomuto khi đầu vào là dãy tăng dần.

Xem đáp án » 12/06/2023 569

Câu 2:

Viết chương trình thực hiện sắp xếp nhanh một dãy số và chạy thử kiểm tra.

a) Dựa trên mã lệnh thuật toán cho trong Hình 3.

b) Dựa trên mã lệnh thuật toán cho trong Hình 5.

Xem đáp án » 12/06/2023 159

Câu 3:

Theo em thì diễn biến từng bước sắp xếp nhanh một dãy số cụ thể dùng phân đoạn Lomuto sẽ giống hay sẽ khác với dùng phân đoạn Hoare?

Xem đáp án » 12/06/2023 152

Câu 4:

Bổ sung thêm các câu lệnh in kết quả trung gian vào các chương trình nói trên để có thể quan sát diễn biến từng bước thực hiện sắp xếp nhanh một dãy số.

Xem đáp án » 12/06/2023 103

Câu 5:

Em hãy thực hiện các công việc sau:

a) Sửa lại thủ tục phân đoạn đề có hàm quickSort_ down sắp xếp theo thứ tự giảm dần.

Gợi ý. Sửa đối phép so sánh trong câu lệnh 1f a[3] <= pivot: thành 1f a[3]} >= pivot:

b) Tiếp tục sửa lại để có hàm quickSort_tuple down sắp xếp danh sách

các cặp. ví dụ (tên học sinh, điểm môn học) theo điệm môn học giảm dần.

Gợi y: Sửa đổi đầu vào thành danh sách các cặp (tên học sinh, điểm môn học) và thực hiện so sánh theo điểm môn học.

Xem đáp án » 12/06/2023 82

Câu 6:

Nếu cần chọn một trong hai việc sau đây, em sẽ chọn việc làm nào? Vì sao?

1. Từ mô tả thuật toán bằng liệt kê các bước, viết chương trình Phython thực hiện thuật toán.

2. Từ chương trình Phython thực hiện thuật toán, viết lại ngắn gọn ý tưởng chính của thuật toán.

Xem đáp án » 12/06/2023 71

Bình luận


Bình luận
tailieugiaovien.com.vn
tuyen-dung-giao-vien-1900