详解!Java数组数据结构(冒泡排序)

在操作数组时,经常需要对数组的元素进行排序,接下来为大家介绍两种常见的排序算法:冒泡排序和选择排序

冒泡排序

冒泡排序的步骤:

  1. 从第一个元素开始,将相邻的两个元素依次进行比较,如果左边大于右边则交换,每一轮比较的最后一个元素都是最大的。
  2. 第二轮除最后一个元素,将剩余的元素进行两两比较。
  3. 依次类推,持续的重复上面的步骤,直到没有任何一对元素需要比较为止。

实现步骤:

  1. 首先先将各个步骤代码写出来,再拼接起来
  2. 先将比较的代码实现出来
// 比较相邻的元素,如果左边的元素大于右边的元素,则交换位置
if(arr[y]>arr[y+1]) {
     int temp = arr[y];
     arr[y] = arr[y+1];
     arr[y+1] = temp;
}
  1. 接下来定义循环:根据题意可知我们与要定义一个嵌套循环,这里用for循环,由于需要先获取到所有的元素,所以外循环:
// 由此可知代码
/* 这里减一是因为每一轮比较都可以确定一个元素
所以最后一个元素不需要比较了
当然这个减一是可以去掉的,不过这样没有意义*/
for(int x = 0;x <arr.length-1;x++){
    
}
  1. 每一个元素都需要进行往后的不断比较,只不过需要比较的次书会随着外循环的不断递增而不断减小,所以遍历的次数是"arr.length-x-1",这个减一是必须有的,没有的话会多进行一次比较,直接报错
for(int y = 0;y < arr.length-x-1;y++) {

}

最后代码如下:

for (int x = 0; x < arr.length-1; x++) {
    for(int y = 0;y < arr.length-x-1;y++) {
    // 比较相邻的元素,左边元素大于右边元素,则交换位
	if(arr[y]>arr[y+1]) {
    	 //定义
     	    int temp = arr[y];
    	    arr[y] = arr[y+1];
     	    arr[y+1] = temp;
	}
    }
}
  // 这里输出的是排序完成后数组的顺序
  System.out.println(Arrays.toString(arr));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹈鹕吃吃吃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值