栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

排序算法之冒泡算法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

排序算法之冒泡算法



 

文章目录
  • 系列文章目录
  • 前言
  • 一、定义与基本思路
  • 二、使用步骤
    • 1.算法实现过程
    • 2.例题详解
    • 3.时间复杂度分析
  • 总结




前言

排序算法是最经典、最基础的算法之一,也是我们学习C语言接触较早的算法,可是你是否真的掌握了冒泡算法了呢?今天让我们聊一聊排序算法中冒泡算法。



一、定义与基本思路

冒泡排序是一种较简单的排序算法,又称起泡排序。其基本思路是,每次将相邻的两个,每次比较一轮,总会找到序列中最大的一个或最小的一个。最终可以得到一个递增数列或者递减数。



二、例题详解



1.算法实现过程

 



2.例题讲解

下面以递增数列为例

1).详细代码

# include 
int 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博客)所提到的,面对无序的数列,可以先用冒泡算法进行排序,再采用二分法查找某一个数值,但是冒泡算法是一种效率较低的方法,不适合用于处理大量数据的情况。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/655907.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号