void bubblesort(int *r,int n) { /*起泡排序函数*/ }补充这个算法
时间: 2023-08-06 22:03:28 浏览: 187
冒泡排序的两种算法sort和sort1
好的,那么我们来补充一下这个算法:
完整的起泡排序函数如下:
```c
void bubblesort(int *r, int n) {
for (int i = 0; i < n - 1; i++) { // 外层循环,控制排序趟数
for (int j = 0; j < n - i - 1; j++) { // 内层循环,控制每趟排序次数
if (r[j] > r[j + 1]) { // 相邻元素比较,如果前者大于后者,则交换它们的位置
int temp = r[j];
r[j] = r[j + 1];
r[j + 1] = temp;
}
}
}
}
```
这个函数接收两个参数,分别是整型数组r和数组长度n。函数没有返回值,因为排序后的结果直接反映在原数组r中。
在函数体内,我们使用两层循环实现了起泡排序算法。外层循环控制排序的趟数,因为每一趟排序都会将数组中一个最大的元素“冒泡”到数组的末尾,所以趟数为n-1次即可。内层循环控制每一趟排序的次数,每次比较相邻的两个元素,如果前者大于后者,则交换它们的位置。
重复执行上述比较和交换操作,直到每一趟排序的末尾,即可得到一个有序的数组。
阅读全文