本文主要是介绍排序 - 冒泡 (bubble sort),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1 . 前言
- 2 . 冒泡原理
- 3 . 代码实现
- 4 . 时间复杂度
- 5 . 总结
【全文大纲】 : https://blog.csdn.net/Engineer_LU/article/details/135149485
1 . 前言
数据整理过程中经常需要把数据排序,这篇文章主要详解冒泡排序
2 . 冒泡原理
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
3 . 代码实现
/* 冒泡排序 */
/* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 */
/* 2. 对所有元素均重复以上步骤,直至最后一个元素 */
/* elemType arr[]: 排序目标数组; int len: 元素个数 */
void bubbleSort (unsigned char arr[], unsigned int len) {unsigned char temp;int i, j;for (i=0; i<len-1; i++) {/* 外循环为排序趟数,len个数进行len-1趟 */for (j=0; j<len-1-i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-1-i次 */if (arr[j] > arr[j+1]) { /* 相邻元素比较,若逆序(升序为左大于右,降序反之) 则交换 */temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}
}
4 . 时间复杂度
O ( n 2 ) O(n²) O(n2)
5 . 总结
冒泡排序适合用在数据量不多的场景,这个算法不需要借助过多的栈内存来完成,对系统的消耗多数体现在时间上的消耗,若是追求稳定性,对时间复杂度要求不高,这个算法是推荐的,谢谢观看。
技术交流群 : 745662457
群内专注 - 问题答疑,技术研究
这篇关于排序 - 冒泡 (bubble sort)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!