文章目录
- 系列文章目录
- 前言
- 一、定义与基本思路
- 二、使用步骤
- 1.算法实现过程
- 2.例题详解
- 3.时间复杂度分析
- 总结
- 1.算法实现过程
- 2.例题详解
- 3.时间复杂度分析
前言
排序算法是最经典、最基础的算法之一,也是我们学习C语言接触较早的算法,可是你是否真的掌握了冒泡算法了呢?今天让我们聊一聊排序算法中冒泡算法。
一、定义与基本思路
冒泡排序是一种较简单的排序算法,又称起泡排序。其基本思路是,每次将相邻的两个,每次比较一轮,总会找到序列中最大的一个或最小的一个。最终可以得到一个递增数列或者递减数。
二、例题详解
1.算法实现过程
1.算法实现过程
2.例题讲解
下面以递增数列为例
1).详细代码
# includeint main() { int a[] = {30,5,7,-29,90,89,20,100,24}; int n,i,j,temp; n = sizeof(a) / sizeof(a[0]); for (i=0; i a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } for (i=0; i 2).运算结果如图所示
注意:空格也是也是一种字符,数组的最后一为一般是空格,注意输出的格式。
3.冒泡算法的核心过程
void Bubble_sort(int a[],int n) { int i,j,temp; for(i=0;ia[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } } 4.时间复杂度分析
通过冒泡算法是基本思想和例题分析,发现冒泡排序算法在每轮排序中会得到一个数最终确定位置,而一个长度为n的数列需要 n-1 轮的比较排序,有例题分析可知,其需要两层for循环,故按照计算时间复杂度的规则,去掉常数和最高项系数,其时间复杂度为O(N^2)。
总结冒泡算法是一种简单易学的算法,对于上篇(二分查找的简单运用_m0_50708613的博客-CSDN博客)所提到的,面对无序的数列,可以先用冒泡算法进行排序,再采用二分法查找某一个数值,但是冒泡算法是一种效率较低的方法,不适合用于处理大量数据的情况。



