Quảng cáo
2 câu trả lời 54
#include <stdio.h>
int main() {
int a[100];
int n;
printf("\nNhap so luong phan tu n = ");
do {
scanf("%d", &n);
if (n <= 0) {
printf("\nNhap lai n = ");
}
} while (n <= 0);
for (int i = 0; i < n; i++) {
printf("\nNhap a[%d] = ", i);
scanf("%d", &a[i]);
}
// Sắp xếp dùng thuật toán sắp xếp chọn
for (int i = 0; i < n - 1; i++) {
int min_index = i;
for (int j = i + 1; j < n; j++) {
if (a[j] < a[min_index]) {
min_index = j;
}
}
// Hoán đổi giá trị của a[i] và a[min_index]
int temp = a[i];
a[i] = a[min_index];
a[min_index] = temp;
}
printf("\nMang da sap xep la: ");
for (int i = 0; i < n; i++) {
printf("%5d", a[i]);
}
return 0;
}
cách sắp xếp các số 7, 5, 4, 2 theo thuật toán sắp xếp chọn:
1. Bắt đầu với dãy số ban đầu:
7 5 4 2
2. Tìm phần tử nhỏ nhất trong dãy số chưa được sắp xếp (bỏ qua phần tử đầu tiên):
- Trong trường hợp này, phần tử nhỏ nhất là 2.
3. Đổi vị trí phần tử nhỏ nhất với phần tử đầu tiên:
2 5 4 7
4. **Lặp lại bước 2 và 3 cho đến khi tất cả các phần tử được sắp xếp:**
- Tìm phần tử nhỏ nhất trong dãy số chưa được sắp xếp (bỏ qua hai phần tử đầu tiên): 4.
- Đổi vị trí phần tử nhỏ nhất với phần tử thứ hai:
2 4 5 7
- Tìm phần tử nhỏ nhất trong dãy số chưa được sắp xếp (bỏ qua ba phần tử đầu tiên): 5.
- Đổi vị trí phần tử nhỏ nhất với phần tử thứ ba:
2 4 5 7
5. Dãy số sau khi sắp xếp:
2 4 5 7
Quảng cáo
Câu hỏi hot cùng chủ đề
-
2 32067
-
Hỏi từ APP VIETJACK3 24455