C语言利用冒泡排序算法,将顺序表{3,6,2,10,1,20,88,8,5,7,4,9}中的元素从小到大进行排序
时间: 2024-03-07 21:49:37 浏览: 27
好的,这个问题很简单。下面是C语言中使用冒泡排序算法对顺序表进行从小到大排序的代码实现:
```c
#include <stdio.h>
void bubble_sort(int arr[], int len)
{
int i, j, temp;
for (i = 0; i < len - 1; i++)
{
for (j = 0; j < len - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main()
{
int arr[] = {3, 6, 2, 10, 1, 20, 88, 8, 5, 7, 4, 9};
int len = sizeof(arr) / sizeof(arr[0]);
int i;
printf("排序前的数组:");
for (i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
bubble_sort(arr, len);
printf("排序后的数组:");
for (i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
排序前的数组:3 6 2 10 1 20 88 8 5 7 4 9
排序后的数组:1 2 3 4 5 6 7 8 9 10 20 88
```
以上代码中,`bubble_sort` 函数是冒泡排序算法的具体实现,它使用两个循环嵌套来完成排序。在外层循环中,我们用一个变量 `i` 来控制排序的轮数,因为每轮冒泡都会将当前未排序部分的最大值移动到最后,所以 `i` 的范围是从 `0` 到 `len - 2`。在内层循环中,我们用一个变量 `j` 来控制每轮冒泡比较的次数,因为每次冒泡都会将当前未排序部分的最大值移动到最后,所以 `j` 的范围是从 `0` 到 `len - 2 - i`。每次比较时,如果前一个数比后一个数大,就交换它们的位置。最后,当外层循环结束后,整个数组就已经排好序了。
希望我的回答对你有所帮助,有其他问题可以继续问我哦!