Hàm sau đây trong Python thể hiện một thuật toán sắp xếp:
| 1 | def Sort (A) $:$ |
|---|---|
| 2 | $n = {\rm{len}}\left( A \right)$ |
| 3 | for $i$ in range $\left( {1,n} \right):$ |
| 4 | value $ = $ A $\left[ i \right]$ |
| 5 | $j = i - 1$ |
| 6 | while $j > = 0$ and $A\left[ j \right] > $ value : |
| 7 | $A\left[ {j + 1} \right] = A\left[ j \right]$ |
| 8 | $j = j - 1$ |
| 9 | $A\left[ {j + 1} \right] = $ value |
Một số bạn học sinh đưa ra các nhận xét về hàm trên như sau:
Lời giải chi tiết
Để giải quyết bài tập này, ta cần phân tích từng mệnh đề mà học sinh đã nhận xét về hàm Sort:
value) sang bên phải để tạo khoang chèn giá trị vào vị trí đúng. Đặc trưng này thuộc về thuật toán sắp xếp chèn.i=1, cần chèn 7 vào dãy đã sắp xếp [9], ta so sánh 9 và 7, 9 lớn hơn 7, nên đổi chỗ sau đó dừng vòng lặp while và mảng chuyển thành [7,9,10,2,3,14].A[j] > value thành A[j] < value ở dòng 6, không cần thay đổi dòng lệnh 7 và 8.Chú ý khi giải