C语言详解:冒泡排序算法及其实现

0 下载量 125 浏览量 更新于2024-08-03 收藏 2KB TXT 举报
冒泡排序是一种基础但直观的排序算法,其原理是通过不断比较和交换相邻元素,逐渐把较大的(或较小)数值“浮”到数组的顶部。在C语言中,这个过程被实现于`bubbleSort`函数中。该函数接受一个整数数组`arr`和数组的长度`n`作为参数。核心部分的代码如下: ```c 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; // 将较小元素放到左侧 } } } } ``` 在`main`函数中,创建了一个整数数组`arr`并初始化了如64、34等值,然后调用`bubbleSort`函数对其进行排序。排序前后数组的输出演示了冒泡排序的过程,例如: - 原始数组:64 34 25 12 22 11 90 - 排序后的数组:11 12 22 25 34 64 90 冒泡排序的时间复杂度为O(n^2),这是因为对于n个元素的数组,需要进行n-1轮比较,每轮又有n-i-1次比较。虽然冒泡排序简单易懂,但在处理大数据量时效率较低,不适合大规模的数据排序任务。然而,由于其稳定性(相同元素的相对顺序不会改变),在某些特定场景下(如数据量较小或者几乎有序的情况下)仍有一定的应用价值。