Bài tập  /  Bài đang cần trả lời

Giải bài có thưởng!

Hãy cho biết thứ tự của mảng sau khi chạy xong đoạn chương trình này:

Hãy cho biết thứ tự của mảng sau khi chạy xong đoạn chương trình này: int a[6]={8,6,2,9,1,5}; int i, j,
temp; for(i=0;i<5;i++){ for(j=i+1;j<6;j++){ if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } }
A. Báo lỗi
B. 8,2,6,2,9,1,5
C. 9,8,6,5,2,1
D. 1,2,5,6,8,9
0 Xem trả lời
Hỏi chi tiết
124
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Đoạn chương trình đã cho thực hiện một thuật toán sắp xếp (bubble sort) nhưng với điều kiện là chỉ hoán đổi các phần tử nếu phần tử hiện tại lớn hơn phần tử phía sau. Điều này gây ra tình trạng các phần tử lớn hơn ở phía trước và sắp xếp theo thứ tự từ lớn đến nhỏ.

Dưới đây là quá trình thực hiện sắp xếp cho mảng `int a[6]={8,6,2,9,1,5};`:

1. Đầu tiên, `i = 0`:
- `j = 1`: `8 > 6` → hoán đổi → mảng: `{6, 8, 2, 9, 1, 5}`
- `j = 2`: `6 > 2` → hoán đổi → mảng: `{2, 8, 6, 9, 1, 5}`
- `j = 3`: `2 < 9` → không hoán đổi.
- `j = 4`: `2 < 1` → không hoán đổi.
- `j = 5`: `2 < 5` → không hoán đổi.

2. Tiếp theo, `i = 1`:
- `j = 2`: `8 > 6` → hoán đổi → mảng: `{2, 6, 8, 9, 1, 5}`
- `j = 3`: `6 < 9` → không hoán đổi.
- `j = 4`: `6 > 1` → hoán đổi → mảng: `{2, 1, 8, 9, 6, 5}`
- `j = 5`: `1 < 5` → không hoán đổi.

3. Tương tự, với các giá trị `i = 2`, `i = 3`, ... sẽ không còn hoán đổi nào xảy ra.

Kết quả cuối cùng của mảng sau khi chạy đoạn chương trình là: `{1, 2, 5, 6, 8, 9}`.

Do đó, đáp án đúng là:
**D. 1, 2, 5, 6, 8, 9**.

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường
×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500k
Gửi câu hỏi
×