int类型数组实现冒泡排序

首先,我们要进行冒泡排序,我们需要一个排序对象,这里我们以int类型的数组为例,这里先声明一个int类型的数组,声明一个数组有两种方式,一种是动态初始化,一种是静态初始化,我们要对数组内的元素进行排序,所以这里我们采用静态初始化,int[] arr = {3,1,5,4,2};。
**原理:**冒泡排序,顾名思义就是每次从数组的低端冒出一个最大值和最小值来实现对组数的降序或者升序排列,这里我们来实现对上面数组的升序排列,也就是从数组的底端到顶端每次冒出一个最小值来,那这个最小值是怎么得到的呢?就是数组最末尾(用当前位表示)的那个元素和它前一个比较,如果小就发生一个值的互换,当前位往上挪一位,再进行比较;如果比它大就不用发生值的互换,但当前位还是要往上挪一位,再进行比较。这样进行x次比较我们就可以得到第一个最小值,x次是几次呢?x=数组长度-1次。我们用一个循环表示怎样得到了这个最小值,那第二小值怎么办,所以说我们要在这个循环外边再用一个循环来控制它得轮次,外面的循环表示每一次找到一个最小值,那外面的循环需要执行几次呢?y=数组的长度-1,我们以上面那个数组为例,当外面的循环执行4次,其实数组已经排好了,所以说我们为了优化程序,把外面循环定义成数组长度-1次。那再有一个问题就是,当外面循环执行第二次的时候,也就是找出这个数组中第二小值得时候里面循环是不是只需要循环3次就可以找到第二小的值?答案是对的,第二次循环里层循环就会少一次,依次类推。
代码展示:
在这里插入图片描述
大家可以把代码和上面文字说明联系起来看,这样可以更方便理解,理解了对数组的升序排列,相信叫大家在做一个降序排列也没什么问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值