简单排序算法--冒泡排序的实现函数
发布时间:2023-06-26 13:34:07
冒泡排序是一种简单的排序算法,它的基本思想就是反复地交换相邻两个元素,直到把整个序列排好序。在实际应用中,它的使用范围很广,由于它的代码简单易懂,操作也非常简单,在很多场合都被使用到。本文主要介绍冒泡排序的实现函数。
1.冒泡排序实现函数
下面是冒泡排序的实现函数:
void bubbleSort(int a[], int len) {
int i, j, tmp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++) {
if (a[j] > a[j + 1]) {
// 交换相邻两个元素
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
在这个函数中,我们使用了两个循环嵌套来实现冒泡排序。外层循环控制排序轮数,内层循环控制每一轮中的比较和交换操作。
在内层循环中,我们首先判断相邻两个元素的大小关系,如果前面的元素大于后面的元素,就交换它们的位置。这样一轮比较下来,最大的元素就被放到了最后面。然后我们就可以开始下一轮比较了。
在外层循环中,我们要比较 len - 1 次,因为最后一个元素已经排好序了,不需要再进行比较和交换。而在内层循环中,我们要比较 len - i - 1 次,因为已经排好序的元素不需要再进行比较和交换,可以节省一部分时间。
2.示例代码
下面是一个示例代码,供大家参考:
#include <stdio.h>
void bubbleSort(int a[], int len);
int main() {
int a[] = {3, 2, 8, 5, 0, 7, 4, 1, 6, 9};
int len = sizeof(a) / sizeof(int);
bubbleSort(a, len);
int i;
for (i = 0; i < len; i++) {
printf("%d ", a[i]);
}
printf("
");
return 0;
}
void bubbleSort(int a[], int len) {
int i, j, tmp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++) {
if (a[j] > a[j + 1]) {
// 交换相邻两个元素
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
在这个示例代码中,我们首先定义了一个数组 a,它包含了 10 个整数。然后我们调用 bubbleSort 函数对数组进行排序,最后使用循环输出排序后的结果。
3.总结
冒泡排序是一种简单的排序算法,它的代码非常简单,操作也很简单,适用于各种场合。在实际使用中,我们要注意内外两层循环的控制次数,以及相邻两个元素的比较和交换操作。只要我们熟练掌握了这个算法的实现,就可以在实际项目中灵活运用。
