画的不是很好,大致是这个意思,从左边开始第一位一次和右边对比,如果左边比右边大,那么
就将左边的数值给右边,右边的给左边,完成后以之前右边的数在和右边的右边的数进行对比,一次重复比对,直到决出最大值放在最右边,然后开始第二轮的第二大值的比对,档比对完成到倒数第二大的值比对完成后,输出就行了,重点就是下面这行代码
ps(如果里面的判断符由>变成<的话那么就是从左到右从大到小的排序了)
for (int i = 0; i < a.length-1; i++) {
for (int j = 0; j < a.length-i-1; j++) {
if (a[j]>a[j+1]) {
int t = a[j];
a[j]=a[j+1];
a[j+1]=t;
}}}
灵魂画手【狗头】
public class Day_08_数组冒泡排序 {
private static void show(int [] num) {
// TODO 自动生成的方法存根
//检索输出方法
System.out.println("打印:");
for (int b : num) {
System.out.println(b);
}
}
//将冒泡排序提取成方法
public static int [] maoPao(int [] a) {
//公式规律就是外层n-1,内层n-i-1
for (int i = 0; i < a.length-1; i++) {
for (int j = 0; j < a.length-i-1; j++) {
//条件判断如果前一个数和后一个数比要大,那么通过第三方变量的方法互换两个变量的值
//之后后一个数就变成了前一个数的数值,现在后一个数是最大的,然后再重复和右边的比对,直到决出数组里最大值
//完事后做第二大值的比对,还是同样的方法,直到决出倒数第二大值
//现在这个数组就是从小到大排序了
if (a[j]>a[j+1]) {
int t = a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
return a;
}
public static void main(String[] args) {
int [] a= {233,343,545,54,333};
//调用检索一下
show(a);
//调用冒泡排序方法
maoPao(a);
//检索一下是否有误
show(a);
}
}
>号的结果
<的结果