C语言实现冒泡排序详解及代码示例

0 下载量 63 浏览量 更新于2024-08-03 收藏 2KB MD 举报
冒泡排序是一种基础但直观的排序算法,它的基本思想是通过反复遍历数组,比较相邻元素并根据需要交换它们的位置,逐渐将较大或较小的元素“浮”到数组的一端,从而达到排序的目的。在C语言中,实现冒泡排序可以通过编写如下的程序代码来完成: 1. 首先,我们定义一个名为`bubble_sort`的函数,该函数接受两个参数:一个整数数组`arr`和数组的长度`n`。这表明函数的主要任务就是对数组进行排序操作。 ```c void bubble_sort(int arr[], int n) { ``` 2. 冒泡排序的核心逻辑包含两层嵌套循环。外部循环控制排序的轮数,从第一个元素到最后一个元素(`i`从0到`n-1`)。内部循环则用于每一轮的元素比较和交换,从第一个元素到最后一个未排序元素(`j`从0到`n-1-i`)。 ```c for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { ``` 3. 在内部循环中,如果当前元素`arr[j]`大于下一个元素`arr[j+1]`,则临时存储`arr[j]`的值,将`arr[j+1]`的值赋给`arr[j]`,再将`arr[j]`的原始值赋给`arr[j+1]`。这样就实现了较大的元素向右移动的过程。 ```c if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } ``` 4. `main`函数中,我们创建了一个示例整数数组`arr`,初始化为`{64, 34, 25, 12, 22, 11, 90}`,并计算数组长度。然后调用`bubble_sort`函数对数组进行排序。 ```c int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, n); ``` 5. 排序完成后,使用`printf`函数打印出排序后的数组,以便于观察结果。 ```c printf("Sorted array is:\n"); for (int i = 0; i < n; i++) { printf("%d", arr[i]); } printf("\n"); ``` 这段C语言程序展示了冒泡排序的基本实现步骤,通过两个嵌套循环不断比较和交换数组元素,直到整个数组有序。它简洁明了,适合教学和理解排序算法的原理。尽管冒泡排序不是最高效的排序算法,但对于小规模数据或教学目的,它仍然是一个实用且易于理解的选择。