C语言冒泡排序算法实现与代码示例
C语言实现冒泡排序算法
冒泡排序是一种简单直观的排序算法,它重复地遍历要排序的列表,每次比较相邻的两个元素,如果它们的顺序错误就交换它们,直到没有元素需要交换为止。
以下是使用C语言实现冒泡排序的示例代码:
#include <stdio.h>
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
// 每次遍历比较相邻的元素
for (j = 0; j < n - i - 1; j++) {
// 如果顺序不正确,交换元素位置
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
printf('排序后的数组:');
for (int i = 0; i < n; i++) {
printf('%d ', arr[i]);
}
return 0;
}
代码解释:
bubbleSort函数实现了冒泡排序算法,它接受一个整数数组arr和数组的长度n作为参数。- 外层循环
i控制遍历的轮数,每一轮都会将未排序部分的最大值放到正确的位置。 - 内层循环
j比较相邻元素,如果顺序错误就交换它们的位置。 main函数中,首先定义了一个待排序的数组arr,然后调用bubbleSort函数对数组进行排序,最后打印排序后的数组。
运行结果:
运行该代码,输出结果为:11 12 22 25 34 64 90,表示排序后的数组。
总结:
冒泡排序算法简单易懂,但效率较低,时间复杂度为 O(n^2)。对于小规模数据的排序,冒泡排序是一种可行的选择,但对于大规模数据,建议使用更高效的排序算法,如快速排序、归并排序等。
原文地址: https://www.cveoy.top/t/topic/z0j 著作权归作者所有。请勿转载和采集!