c语言冒泡排序算法
来源:千锋教育
发布人:zyh
2023-05-31
推荐
冒泡排序是一种简单的排序算法,它重复地遍历待排序的元素,比较相邻的两个元素,并按照大小进行交换,直到整个序列有序为止。下面是C语言实现冒泡排序的示例代码:
#include <stdio.h>
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
// 每次遍历都将最大的元素冒泡到末尾
for (int j = 0; j < n - i - 1; j++) {
// 如果相邻的两个元素逆序,则交换它们的位置
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {5, 2, 8, 3, 1};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Before sorting: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
bubbleSort(arr, n);
printf("\nAfter sorting: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
在上述代码中,bubbleSort函数实现了冒泡排序算法。它使用了两层循环,外层循环控制遍历的次数,内层循环用于比较相邻元素并进行交换。通过多次遍历,将最大的元素逐步冒泡到末尾,直到整个序列有序。
在main函数中,我们定义了一个整型数组arr并初始化,然后调用bubbleSort函数进行排序。最后,打印排序前和排序后的数组元素。
运行以上代码,输出结果为:
Before sorting: 5 2 8 3 1
After sorting: 1 2 3 5 8
可以看到,冒泡排序算法成功地将数组元素从小到大进行了排序。