龙海儿
关注《电气外传》公众号,知乎,CSDN等同号
级别: 论坛先锋
精华主题: 0
发帖数量: 327 个
工控威望: 1224 点
下载积分: 722 分
在线时间: 97(小时)
注册时间: 2018-04-13
最后登录: 2025-05-09
查看龙海儿的 主题 / 回贴
楼主  发表于: 3天前
图片:
图片:
图片:
1111MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal01111MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0
龙海儿11(同微博)      同《电气外传》微信公众号


我们在做一些数据管理的时候,往往要取最大值、最小值、求平均值、求和等。然而要得到以上结果是不是需要先对数据进行排序呢?那冒泡排序法自然是首选。让我们一起来做一下吧。


创造一个情境,第一步肯定是先建立一个数组。我这里用的11个int类型组成的数组(从0-10是11个)。在里面随机填上了0-10的乱序数据。


然后如图开始编写双层for循环程序。外层循环控制排序的次数,11个数据只需要循环10次即可。因为最后一个肯定已经满足了要求。内层循环需要处理每次的比较,遍历数组。实现数据移位和交换。切遍历次数依次在减少。


最后循环结束就可以得到组从小到大排序好的数据了。那么最小最大值直接从第一个和最后一个传送出去即可。求平均值和求和自然水到渠成,当然不排序也可以直接先去运算。
“冒泡”的含义其实就相当于把最大的数据从最后一个位置,通过交换操作,一步一步“浮现”到第一个位置的。实现方法比较简单,也易于理解。在一些小场景小规模数据处理中还是可以的,希望对大家有所帮助。
最后就写到这里,还是欢迎各位看官来深入讨论和批评指正!

关注《电气外传》公众号,知乎,CSDN等同号
哈喽123
级别: 略有小成
精华主题: 0
发帖数量: 159 个
工控威望: 352 点
下载积分: 1072 分
在线时间: 27(小时)
注册时间: 2023-03-02
最后登录: 2025-05-10
查看哈喽123的 主题 / 回贴
1楼  发表于: 3天前
我的建议是把提取的数放到一个新的数组里,而不是把现在的数组重新排序,例如现在的数组0的是7,按照你现在的思路,重新排序后的数组0变成了0,这不是一个好的解决办法,把数组里的数排序、取值,都不能改变现有的数组对应的数值,但是,正如楼主说的,处理这类型的数组时,SCL语言是最简洁的
1421448580
级别: 略有小成
精华主题: 0
发帖数量: 236 个
工控威望: 340 点
下载积分: 13364 分
在线时间: 901(小时)
注册时间: 2015-10-10
最后登录: 2025-05-10
查看1421448580的 主题 / 回贴
2楼  发表于: 3天前
大佬  写个最短路径搜索吧 让大家膜拜一下
龙海儿
关注《电气外传》公众号,知乎,CSDN等同号
级别: 论坛先锋
精华主题: 0
发帖数量: 327 个
工控威望: 1224 点
下载积分: 722 分
在线时间: 97(小时)
注册时间: 2018-04-13
最后登录: 2025-05-09
查看龙海儿的 主题 / 回贴
3楼  发表于: 3天前
引用
引用第1楼哈喽123于2025-05-08 09:22发表的  :
我的建议是把提取的数放到一个新的数组里,而不是把现在的数组重新排序,例如现在的数组0的是7,按照你现在的思路,重新排序后的数组0变成了0,这不是一个好的解决办法,把数组里的数排序、取值,都不能改变现有的数组对应的数值,但是,正如楼主说的,处理这类型的数组时,SCL语言是最简洁的

没有最简,只有更简,重要的理解后,分两个,分三个数组都可以。正序和逆序都可以。当然还有其它排序方法,
关注《电气外传》公众号,知乎,CSDN等同号
龙海儿
关注《电气外传》公众号,知乎,CSDN等同号
级别: 论坛先锋
精华主题: 0
发帖数量: 327 个
工控威望: 1224 点
下载积分: 722 分
在线时间: 97(小时)
注册时间: 2018-04-13
最后登录: 2025-05-09
查看龙海儿的 主题 / 回贴
4楼  发表于: 3天前
引用
引用第2楼1421448580于2025-05-08 09:57发表的  :
大佬  写个最短路径搜索吧 让大家膜拜一下

啥最短路径啊?
关注《电气外传》公众号,知乎,CSDN等同号