冒泡可以向前“冒”,即每次交换都是从记录集的最后开始,将最小记录“冒”到最前面。请用C语言写出这种冒泡的子程序
时间: 2023-09-08 18:12:10 浏览: 118
以下是用C语言实现的向前冒泡排序的子程序:
```c
void bubbleSort(int arr[], int n) {
for (int i = n - 1; i > 0; i--) {
for (int j = n - 1; j > n - i - 1; j--) {
if (arr[j] < arr[j - 1]) {
int temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
}
}
}
```
其中,`arr`为待排序的数组,`n`为数组的长度。内层循环从最后一个元素开始,逐个与其前一个元素比较,如果后一个元素比前一个元素小,则交换它们的位置。外层循环控制排序次数,每次排序都可以将当前未排序部分的最小值“冒泡”到最前面。
阅读全文