The following is the main part of bubble sort pseudocode: do swapped := false for i := 0 to n-2 if a[i] > a[i+1] then swap(a[i],a[i+1]) swapped := true end if end for while swapped Consider the list of ten integers below: 15, 13, 18, 19, 11, 17, 10, 12, 16, 14 What is the list after the FIRST iteration (for i = 0 to n-2) in a bubble sort ?(sorting from smallest to largest).

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "13, 15, 18, 11, 17, 10, 12, 16, 14, 19". Một lượt của vòng for so sánh từng cặp kề nhau từ đầu tới cuối và đổi chỗ khi phần tử trước lớn hơn, nên phần tử lớn nhất bị đẩy dần về cuối. Chạy trên 15, 13, 18, 19, 11, 17, 10, 12, 16, 14: cặp 15 và 13 đổi chỗ thành 13, 15; cặp 15 với 18 rồi 18 với 19 đều đã đúng thứ tự nên giữ nguyên; từ đó 19 trở thành phần tử đang được mang theo và lần lượt đổi chỗ với 11, 17, 10, 12, 16, 14 để rơi xuống ô cuối. Sau lượt đầu chỉ có 13 lên đầu và 19 về cuối, còn các số bị 19 vượt qua đều dịch lên một chỗ mà giữ nguyên thứ tự tương đối, cho 13, 15, 18, 11, 17, 10, 12, 16, 14, 19. "13, 15, 18, 17, 11, 10, 12, 16, 14, 19" đổi chỗ 11 với 17, nhưng 11 nhỏ hơn 17 nên cặp đó không bị đổi. "13, 15, 18, 11, 17, 10, 12, 14, 16, 19" đã sắp lại 14 với 16, việc chỉ xảy ra ở lượt sau. "13, 15, 18, 10, 11, 17, 12, 16, 14, 19" kéo 10 nhảy ngược qua 11 và 17, trong khi mỗi lượt chỉ dồn một phần tử lớn về cuối.

Cùng phần 6

Xuất hiện trong 1 bộ đề