JavaScript is required

Kết quả nào đúng khi thực hiện giải thuật sau với a[]= {1, 3, 5}; n= 5, k= 3:

                                                             

A.

 2 3 4

B.

1 2 3

C.

2 3 5

D.

1 4 5

Hãy suy nghĩ và trả lời câu hỏi trước khi xem đáp án

Trả lời:

Đáp án đúng: D


Đề bài yêu cầu tìm kết quả của thuật toán sinh kế tiếp. Với a = {1, 3, 5}, n = 5, k = 3, ta thực hiện như sau: 1. **Khởi tạo:** a = {1, 3, 5} 2. **Tìm từ cuối dãy lên:** Bắt đầu từ cuối dãy (a[2] = 5). 3. **Điều kiện dừng:** Tìm vị trí i sao cho a[i] < n - k + i. Trong trường hợp này: * i = 2: a[2] = 5. n - k + i = 5 - 3 + 2 = 4. Vì 5 > 4, nên xét i = 1. * i = 1: a[1] = 3. n - k + i = 5 - 3 + 1 = 3. Vì 3 = 3, nên xét i = 0. * i = 0: a[0] = 1. n - k + i = 5 - 3 + 0 = 2. Vì 1 < 2, tìm thấy i = 0. 4. **Tăng a[i]:** a[0] = a[0] + 1 = 1 + 1 = 2. 5. **Gán lại các phần tử phía sau:** * a[1] = a[0] + 1 = 2 + 1 = 3 * a[2] = a[1] + 1 = 3 + 1 = 4 Vậy kết quả cuối cùng là a = {2, 3, 4}.

Đề cương ôn thi với 220 câu trắc nghiệm Cấu trúc dữ liệu và giải thuật có đáp án được chọn lọc và chia sẻ dưới đây, nhằm giúp bạn sinh viên hệ thống kiến thức chuẩn bị cho kì thi sắp diễn ra.


50 câu hỏi 60 phút

Câu hỏi liên quan