JavaScript is required

Thuật toán sắp xếp chèn trực tiếp (Straight Insertion Sort) được mô tả bằng đoạn mã giả như sau:

B1: K = 1

B2: IF (K = N) Thực hiện BKT

B3: X = M[K+1]

B4: Pos = 1

B5: IF (Pos > K) Thực hiện B7

B6: ELSE // Tìm vị trí chèn

B6.1: If (X <= M[Pos]) Thực hiện B7

B6.2: Pos++

B6.3: Lặp lại B6.1

B7: I = K+1 B8: IF (I > Pos)

B8.1: M[I] = M[I-1]

B8.2: I--

B8.3: Lặp lại B8

B9: ELSE

B9.1: M[Pos] = X

B9.2: K++

B9.3: Lặp lại B2

BKT: Kết thúc Trong đó B8 mô tả trường hợp

A.

Nếu còn phải dời các phần tử từ Pos->I về phía sau 1 vị trí

B.

Nếu còn phải dời các phần tử từ Pos->K+1 về phía sau 1 vị trí

C.

Nếu còn phải dời các phần tử từ Pos->K về phía sau 1 vị trí

D.

Nếu còn phải dời các phần tử từ Pos->I+1 về phía sau 1 vị trí

Trả lời:

Đáp án đúng: C


Đoạn mã B8 trong thuật toán sắp xếp chèn trực tiếp (Straight Insertion Sort) được sử dụng để dời các phần tử đã được sắp xếp trong đoạn từ vị trí Pos đến vị trí K về phía sau một vị trí để tạo khoảng trống cho phần tử X (M[K+1]) được chèn vào đúng vị trí. Biến I được khởi tạo là K+1 và lặp giảm dần đến Pos. Do đó, B8 mô tả trường hợp "Nếu còn phải dời các phần tử từ Pos->K+1 về phía sau 1 vị trí".

Đề 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