java实现冒泡排序

import java.util.Arrays;
public class _5_7_1 {

public static void main(String[] args)
{
// TODO Auto-generated method stub
int []a = {25,24,12,76,98,101,90,28};
int i,tmp;
for(i=0;i<a.length-1;i++)
{

if(a[i]>a[i+1])
{
tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
}

}
System.out.println(Arrays.toString(a));
}

}
为什么结果是[24, 12, 25, 76, 98, 90, 28, 101]??

你这样写,相当于只冒了一次泡,把最大的一个数,也就是最后一个数,找出来了,冒泡排序是要for循环里在嵌套一个for循环才能做出来的,外面的for循环控制冒泡多少次,里面的循环找出每次的最大值。你这样写少了外面的那个for循环,相当于只找了一次最大值。追问

我明白了,谢谢!

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-12-04
所谓的冒泡排序就是每次把最大的元素冒出来。每循环比对一趟就可以将一个最大的元素找到放在最后一位。因此循环次数也就会少一知道比对完毕。
相似回答