冒泡排序操作及优化和另外一种实现思路

首先假设有一个store了十个随机大小的数的数组,要求我们对其进行从小到大的排序,采用冒泡排序进行相邻元素两两比较。如果有10个元素进行冒泡排序,那么就需要执行9次两两比较。

           

进行排序时考虑极端情况,假设这十个数本来就是从小到大,那么进入store函数时依然会执行循环操作,导致效率降低,so,利用一个判断,如果能进入store函数的第二曾循环,则说明这十个数存在大小关系,则flag的值发生变化,不然flag值不变,再加个判断if flag的值不变,直接break跳出第一层循环。

还有一种情况,不利用排序的方法,个人认为属于排序的另一种思想,适用于知道存在这个数值的上限,例如描述的成绩这类题目。

进行排序的思想:原因-->因为我们知道了该数组内存储的上限,此时只需要求出用户输入时的最大值max,例如成绩这类题目的上限为100,当我们求出了数组内的最大值后,直接来个两层 循环,利用最大值不断去减去1-100的数,当有一个值与我们数组的值对应后,就输出,该值就是该数组内所存储的最大值了。

注:仅用于记录学习记录和用于巩固,还有可补充的点请指教!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值