冒泡排序--数组的简单排序,从大到小,从小到大

冒泡排序是一种简单的排序算法,通过不断比较相邻元素并交换位置实现排序。本文详细解释了冒泡排序的工作原理,以数值从小到大排序为例,展示了排序过程,并提供了一个简单的程序示例。虽然冒泡排序效率不高,但它的易理解和实现使其成为初学者学习排序算法的良好起点。
摘要由CSDN通过智能技术生成

冒泡排序 是计算机程序中较为常见和简单的排序算法,它需要重复地走访需要进行排序的元素列,按照一定顺序依次比较两个相邻的元素,如果顺序错误就把他们交换过来。
示意原图如下:
在这里插入图片描述
我们需要的结果示意图如下:
在这里插入图片描述
那我们应该怎么进行程序的编写才能满足这样的结果呢?
你首先会想到用什么方法来进行排序呢?

此刻。你想想,在军训时候,同排队列中是怎么行按照身高高低来进行站队的?是不是每个人和自己相邻的下一位进行比较?冒泡排序就是利用这种方法,只不过军训站队是可以队列中各个相邻的两个人在同时比较,而冒泡排序一般选择从第一位开始,依次进行比较和排序。

**注意:**以数值从小到大排序为例:是第一位和第二位比较,如果第一位的值 > 第二位的值,则交换,如果不大于,则不交换,这个时候需要比较的位次增加 1,各数值并不变化,第二位和第三位比较,如果第二位的值 > 第三位的值 ,则第二位和第三位交换,如果不大于,则不交换,不管比较与否,需要比较的位次都需要自增 1 ,依次类推直到比较完所有元素(遍历完整个都没有发生交换则证明最后一位的值就是最大的)。

比如对下面这个序列进行从小到大排序:
100 40 130 10 60

第一轮
1)100 和 40比,100>40,则它们互换位置
40 100 130 10 60 (第一次发生交换,继续比较)

2)100 和 130 比,100<130,则不用交换位置
没有发生交换,则需要比较的位数增加 1 ,但各位的值并不交换。
依然是:40 100 130 10 60

3)130 和 10 比,130>10,则它们互换位置
40 100 10 130 60 (第二次发生交换,实际上是第三次比较(第二次没有交换),继续比较)

4)130 和 60 比,130>60,则它们互换位置
40 100 10 60 130

到此第一轮就比较完了第一轮的结果是找到了序列中最大的那个数,并浮到了最右边

比较时,每轮中第 n 次比较是新序列中第 n 个元素和第 n+1 个元素的比较(假如 n 从 1 开始)。

第二轮
第一轮比较完状态:40 100 10 60 130

  1. 40 和 100 比,40<100,则不用交换

  • 25
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值