Hàm sau đây trong Python thể hiện một thuật toán tìm kiếm:
| 1 | ${\rm{defSearch}}\left( {A,K} \right):$ |
| 2 | $n = {\rm{len}}\left( A \right)$ |
| 3 | for i in range $\left( {\rm{n}} \right):$ |
| 4 | if ${\rm{A}}\left[ {\rm{i}} \right] = = {\rm{K}}$ |
| 5 | return i |
| 6 | elif ${\rm{A}}\left[ {\rm{i}} \right] > {\rm{K}}:$ |
| 7 | return -1 |
| 8 | return -1 |
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
Phân tích đề bài:
Đề bài yêu cầu đánh giá các nhận xét về đoạn mã Python cho trước. Hàm Search(A, K) thực hiện tìm kiếm một giá trị K trong một dãy A.
Phân tích các mệnh đề:
A và trả về vị trí của phần tử đầu tiên có giá trị bằng K. Nếu không tìm thấy, hoặc nếu gặp giá trị trong mảng lớn hơn K, hàm trả về -1 và dừng lại.A=[2,5,7,9,10,15] và K=7, điều kiện A[i] == K sẽ đúng tại i=2, do đó hàm sẽ trả về 2.A=[2,4,6,8,10,12] và K=5, mã lệnh sẽ duyệt từ i=0 đến i=2. Tại i=2, vì A[2]=6 > 5 nên hàm trả về -1.
K, nó sẽ dừng lại sớm.A=[2,5,7,9,10,15] và K=7.i=2 khi A=[2,4,6,8,10,12] và K=5.Chú ý khi giải