1.有一浮点型数组A,用C语言写一段函数实现对浮点数组A的降序排序,并输出结果要求以数组A作为函数的入口,用冒泡实现。
#include <stdio.h>
void bubbleSort(float *arr, int size) {
int i, j;
float temp;
for (i = 0; i < size - 1; i++) {
for (j = 0; j < size - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
float arr[] = {3.14, 2.71, 1.618, 0.577, 1.414};
int size = sizeof(arr) / sizeof(arr[0]);
int i;
printf("Original array: ");
for (i = 0; i < size; i++) {
printf("%.3f ", arr[i]);
}
bubbleSort(arr, size);
printf("\nSorted array (descending order): ");
for (i = 0; i < size; i++) {
printf("%.3f ", arr[i]);
}
return 0;
}
2.选择排序。
#include <stdio.h>
void selectionSort(float *arr, int size) {
int i, j, max_index;
float temp;
for (i = 0; i < size - 1; i++) {
max_index = i;
for (j = i + 1; j < size; j++) {
if (arr[j] > arr[max_index]) {
max_index = j;
}
}
if (max_index != i) {
temp = arr[i];
arr[i] = arr[max_index];
arr[max_index] = temp;
}
}
}
int main() {
float arr[] = {3.14, 2.71, 1.618, 0.577, 1.414};
int size = sizeof(arr) / sizeof(arr[0]);
int i;
printf("Original array: ");
for (i = 0; i < size; i++) {
printf("%.3f ", arr[i]);
}
selectionSort(arr, size);
printf("\nSorted array (descending order): ");
for (i = 0; i < size; i++) {
printf("%.3f ", arr[i]);
}
return 0;
}