Giải chuyên đề Tin học định hướng khoa học máy tính 11 KNTT bài 9 Sắp xếp trộn

Hướng dẫn giải chuyên đề bài 9 Sắp xếp trộn trang 40, chuyên đề học tập Tin học định hướng khoa học máy tính 11 sách KNTT. Bộ sách được biên soạn theo định hướng đổi mới giáo dục phổ thông nhằm phát triển toàn diện phẩm chất, năng lực của học sinh. Hi vọng, với cách hướng dẫn cụ thể và giải chi tiết dưới đây các em sẽ nắm bài học tốt hơn.

B. Bài tập và hướng dẫn giải

Khởi động

Câu hỏi 1. Ta đã biết tìm kiếm nhị phân trên các dãy đã sắp xếp có độ phức tạp thời gian tốt hơn so với các thuật toán tìm kiếm trên dãy chưa sắp xếp. Chính vì thế, việc sắp xếp thông tin theo một trình tự nào đó luôn đóng vai trò quan trọng trong các bài toán tìm kiếm thông tin. Tuy nhiên, một số thuật toán sắp xếp mà em đã biết như sắp xếp chèn, sắp xếp chọn, sắp xếp nổi bọt, ... đều có độ phức tạp thời gian O. Câu hỏi đặt ra là: Liệu có hay không một cách sắp xếp dãy với thời gian tốt hơn ?

Liệu kĩ thuật chia để trị có thể áp dụng cho bài toán sắp xếp được không? Nếu có thì có làm tăng hiệu quả của sắp xếp được không?

1. Ý tưởng thuật toán sắp xếp trộn

Câu hỏi 1. Quan sát và thực hiện các bước theo ý tưởng của thuật toán sắp xếp trộn để biết thuật toán này là mô hình kĩ thuật chia để trị. 

Em có nhận xét gì về đặc thù của các giai đoạn 1, 2, 3 trong sơ đồ dưới đây.

Giải chuyên đề Tin học định hướng khoa học máy tính 11 KNTT bài 9 Sắp xếp trộn

 

Câu hỏi 1. Hãy thực hiện thao tác trộn hai dãy sau: B = 1, 4, 7; C = 2, 3, 6.

Câu hỏi 2. Thực hiện sắp xếp dãy 3, 2, 7, 1, 6, 5 theo các bước tương tự trên.

2. Mô tả thuật toán sắp xếp trộn

Câu hỏi 1. Cùng thực hiện các bước cụ thể triển khai ý tưởng và cài đặt chương trình cho thuật toán sắp xếp trộn

Câu hỏi 1. Trong chương trình 1 (trộn hai dãy B, C), vòng lặp tại dòng 6 có nhiều nhất là bao nhiêu bước lặp?

Câu hỏi 2. Mô tả các bước thực hiện chương trình 2 nếu dãy gốc A chỉ có một phần tử.

3. Đánh giá thuật toán sắp xếp trộn

Câu hỏi 1. Phân tích, trao đổi, thảo luận để tính độ phức tạp thời gian của thuật toán sắp xếp trộn.

Câu hỏi 1. Tính thời gian chạy của thuật toán sắp xếp trộn nếu A = [3, 1]

Câu hỏi 2. Mô tả thực hiện các bước của sắp xếp trộn với dãy A = [5, 1, 7, 4]. Trường hợp này T(4) sẽ được tính như thế nào?

Luyện tập

Câu hỏi 1. Viết chương trình thực hiện công việc sau:

- Dữ liệu được nhập từ tệp văn bản Data.inp bao gồm hai dòng, mỗi dòng là một dãy các số nguyên đã được sắp xếp theo thứ tự tăng dần, các số cách nhau bởi dấu cách. Hai dãy này có thể không bằng nhau về kích thước.

- Chương trình sẽ thực hiện trộn hai dãy trên và đưa kết quả dãy được trộn ra tệp Data.out theo một hàng ngang.

Câu hỏi 2. Viết lại chương trình hoàn chỉnh thực hiện sắp xếp trộn với dãy A cho trước trên một tệp văn bản. Kết quả đưa ra màn hình.

Vận dụng

Câu hỏi 1. Viết chương trình hoàn chỉnh nhập dãy số bất kì từ tệp văn bản, sau đó tiến hành sắp xếp dãy số này theo hai cách khác nhau, cách 1 là một trong các thuật toán sắp xếp đã biết, cách 2 là sắp xếp trộn. Đo thời gian chạy thực sự của hai cách trên, so sánh và kết luận về ưu điểm của sắp xếp trộn.

 

Câu hỏi 2. Viết lại thuật toán sắp xếp trộn theo cách thực hiện trực tiếp trên dãy số A cho trước, cụ thể như sau.

- Thủ tục trộn sẽ có dạng sau: merge(A,left,mid,right). Thủ tục này sẽ trộn hai phân đoạn của dãy A là A[left], ...., A[mid] và A[mid + 1]..... A[right]. Hai phân đoạn này phải được sắp xếp đúng trước đó.

- Thuật toán chính có dạng mergeSoft(A, left, right) như sau:

Giải chuyên đề Tin học định hướng khoa học máy tính 11 KNTT bài 9 Sắp xếp trộn

- Lệnh gọi hàm đệ quy là:

Giải chuyên đề Tin học định hướng khoa học máy tính 11 KNTT bài 9 Sắp xếp trộn

Vận dụng

Câu hỏi 1. Viết chương trình hoàn chỉnh nhập dãy số bất kì từ tệp văn bản, sau đó tiến hành sắp xếp dãy số này theo hai cách khác nhau, cách 1 là một trong các thuật toán sắp xếp đã biết, cách 2 là sắp xếp trộn. Đo thời gian chạy thực sự của hai cách trên, so sánh và kết luận về ưu điểm của sắp xếp trộn.

Câu hỏi 2.  Viết lại thuật toán sắp xếp trộn theo cách thực hiện trực tiếp trên dãy số A cho trước, cụ thể như sau.

- Thủ tục trộn sẽ có dạng sau: merge(A,left,mid,right). Thủ tục này sẽ trộn hai phân đoạn của dãy A là A[left], ...., A[mid] và A[mid + 1]..... A[right]. Hai phân đoạn này phải được sắp xếp đúng trước đó.

- Thuật toán chính có dạng mergeSoft(A, left, right) như sau:

- Lệnh gọi hàm đệ quy là:

Giải chuyên đề Tin học định hướng khoa học máy tính 11 KNTT bài 9 Sắp xếp trộn

Thêm kiến thức môn học

Từ khóa tìm kiếm: Giải chuyên đề tin học 11 KNTT bài 9 Sắp xếp trộn, Giải chuyên đề tin học 11 kết nối tri thức bài 9 Sắp xếp trộn, Giải chuyên đề tin học KNTT bài 9 Sắp xếp trộn

Bình luận

Giải bài tập những môn khác