冒泡算法

初始数据:  4,8,3,7,10,9,5

第1次交换:4,3,7,8,9,5,10(需要比较6次,将最大的数10沉到最后)

第2次交换:3,4,7,8,5,9,10(需要比较5次,将9沉到后面)

第3次交换:3,4,7,5,8,9,10(需要比较4次,将8沉到后面)

第4次交换:3,4,5,7,8,9,10(需要比较3次,将7沉到后面)

第5次交换:3,4,5,7,8,9,10(需要比较2次,将5沉到后面)

第6次交换:3,4,5,7,8,9,10(需要比较1次,将4沉到后面)


因此我们需要定义两个变量:i,j。

i:控制第几次的交换。

j:数组下标。

代码如下:

import java.util.Arrays;
public class Algorithm {
public static void main(String[] args) {
int []arraylist={3,5,8,10,9,6,7};
bubbleAlgorithm(arraylist);
System.out.println(Arrays.toString(arraylist));
}
public static void bubbleAlgorithm(int []arr){
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int a=0;
a=arr[j];
arr[j]=arr[j+1];
arr[j+1]=a;
}
}
}
}

}

分析:i=0,i<6,j<6(其中arr.length-1-i  是每次的比较次数){j=0,j=1,j=2,j=3,j=4,j=5}

剩下的按同样思路分析。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值