上浮策略冒泡排序c语言
时间: 2023-10-13 11:27:06 浏览: 29
下面是一个使用上浮策略的冒泡排序的 C 语言代码:
```
#include <stdio.h>
void bubbleSort(float arr[], int n)
{
int i, j;
for (i = 0; i < n-1; i++)
{
// 执行 n-i-1 次比较和交换
for (j = 0; j < n-i-1; j++)
{
if (arr[j] > arr[j+1])
{
// 交换 arr[j] 和 arr[j+1]
float temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main()
{
int n, i;
float arr[100];
printf("输入数组大小:");
scanf("%d", &n);
printf("输入 %d 个浮点数:\n", n);
for (i = 0; i < n; i++)
scanf("%f", &arr[i]);
bubbleSort(arr, n);
printf("排序后的数组:\n");
for (i = 0; i < n; i++)
printf("%f ", arr[i]);
printf("\n");
return 0;
}
```
在这个冒泡排序算法中,我们使用了上浮策略。在每一轮比较中,我们将最大的元素“上浮”到数组的末尾,并且不再对它进行比较。这样,我们可以减少比较的次数,提高排序的效率。