八大排序算法——冒泡排序

本文详细介绍了冒泡排序的原理,通过实例展示了排序过程,并提供了冒泡排序的代码实现。同时,分析了冒泡排序在不同情况下的时间复杂度和空间复杂度,指出其在平均情况下的时间复杂度为O(n2),但在最好情况下可达到O(n)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

冒泡排序是排序算法中比较简单的一个排序。它重复地走访要排序的数列,一次比较两个数据元素,如果顺序不对则进行交换,并一直重复这样的走访操作,知道没有要交换的数据元素为止。

冒泡排序的原理

首先我们肯定要有一个数组,里面存放着待排序的数据元素,我们如果需要把比较大的元素排在前面,把小的元素排在后面,那么需要从尾到头开始下面的比较操作。

1.从尾部开始比较相邻的两个元素,如果尾部的元素比前面的大,就交换两个元素的位置。

2.往前对每个相邻的元素都做这样的比较、交换操作,这样到数组头部时,第一个元素成为最大的元素

3.重新从尾部开始第1、2步的操作,除了在这之前已经排好的元素

4.继续对越来越少的数据进行比较、交换操作,知道没有可比较的数据为止,排序完成。

我们来看一个冒泡排序的例子,加入我们要把12、35、99、18、76这5个数从大到小进行排序,那么数越大,越需要把它放在前面。冒泡排序的思想就是在每次遍历一遍未排序的数列后,将一个数据元素浮上去。

我们从后开始遍历,首先比较18和76两个数,发现76比18大,就把这两个数交换顺序,得到12 35 99 76 18;接着比较76和99,发现76比99小,所以不用交换;接着比较99和35,发现99比35大,交换顺序;接着比较99和12,发现99比12大,交换顺序,最终第1趟排序的结果变成了99  12  35 76 18,排序的过程如下图所示:


经过第一趟排序,我们已经都找到最大的元素,接下来的第二趟排序就只对剩下的4个元素进行排序,第2趟排序的过程如下图所示


经过第二趟排序,结果为99 76 12 35 18,接下来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值