Câu hỏi 2: Với thuật toán sắp xếp chèn, chứng minh rằng nếu thay toàn bộ phần Chèn A[i] vào vị trị...
Câu hỏi:
Câu hỏi 2: Với thuật toán sắp xếp chèn, chứng minh rằng nếu thay toàn bộ phần Chèn A[i] vào vị trị đúng của dãy con A[@), A[l], ..., A[i - 1]> bằng các lệnh sau thì chương trình vẫn đứng:

Câu trả lời:
Người trả lời: GV. Đỗ Đăng Hưng
Để chứng minh tính đúng đắn của thuật toán sắp xếp chèn với các lệnh thay đổi trên, ta cần chứng minh hai điều kiện sau đây:1. Điều kiện ban đầu (trước khi bắt đầu vòng lặp): Sau khi thực hiện lệnh j = 1, giá trị của j đang là 1, và dãy con A[0] chỉ gồm một phần tử là A[0] (vì j-1 là 0). Do đó, dãy con này đã được sắp xếp đúng.2. Điều kiện duy trì (trong quá trình vòng lặp): Trong mỗi vòng lặp của while, nếu A[j] < A[j-1], ta hoán đổi giá trị của A[j] và A[j-1]. Sau đó, ta giảm giá trị của j đi 1 đơn vị bằng lệnh j = j - 1. Lúc này, giá trị của A[j] là giá trị của A[j-1] trước khi hoán đổi, và giá trị của A[j-1] là giá trị của A[j] trước khi hoán đổi. Điều này đồng nghĩa với việc dãy con A[0], A[1], ..., A[j-1] đã được sắp xếp đúng sau mỗi vòng lặp.Vậy nên, dãy con A[0], A[1], ..., A[j-1] luôn được sắp xếp đúng sau mỗi vòng lặp của while, và dãy con này sẽ không bị thay đổi giá trị trong quá trình hoán đổi. Do đó, tính đúng đắn của thuật toán sắp xếp chèn vẫn được duy trì sau khi thay toàn bộ phần chèn A[i] vào vị trí đúng của dãy con A[0], A[1], ..., A[i-1] bằng các lệnh trên.
Câu hỏi liên quan:
- Khởi độngEm đã biết thiết kế một số thuật toán và chương trình: tìm kiếm tuần tự, tìm kiếm nhị phân...
- 1. Phương pháp thiết kế làm mịn dầnCùng trao đổi, thảo luận các bước thiết kế chương trình theo...
- Câu hỏi 1. Trong các bước đã thực hiện của bài toán sắp xếp chèn ở trên, bước nào là đơn giản nhất...
- Câu hỏi 2. Nếu bài toán đặt ra là sắp xếp dãy A theo thứ tự giảm dần thì các bước thiết kế như trên...
- 2. Thiết kế chương trình bằng phương pháp làm mịn dầnHoạt động 2: Thiết kế chương trình bằng phương...
- Câu hỏi 1. Với Bài toán lớp 1 có thể tách các dòng lệnh từ 4 đến 9 thành một hàm con độc lập được...
- Câu hỏi 2. Trong thiết kế bài toán tìm các cặp phần tử nghịch đảo, các bước sau đã thực hiện những...
- Câu hỏi2. Sử dụng thiết kế của Bài toán lớp 2, tìm tất cả các cặp nghịch đảo của dãy: 3, 2, 1...
- Vận dụngCâu hỏi 1. Sử dụng phương pháp làm mịn dần để giải bài toán sau: Cho trước số tự nhiên...
Bình luận (0)