java 冒泡排序,帮我解释一下个别语句,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/09/28 11:30:08
public class paixu {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a={31,2,5,7,17,1,33,40};
for(int i=0;i<a.length;i++){
for(int j=1;j<a.length-i;j++)

if(a[j-1]>a[j]){
int x=a[j-1];
a[j-1]=a[j];
a[j]=x;
}
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}

}

}

这是整个程序,能帮我解释一下这些语句的意思,和为什么要加它吗,我是新手,有很多地方不太明白。

尤其是这三句
for(int i=0;i<a.length;i++)

for(int j=1;j<a.length-i;j++)

for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}

在这里先说声谢谢啦!

冒泡的性能很一般....
要循环N次
每次把最大的排在最后
for(int i=0;i<a.length;i++) 这个是寻找目标数,就是按顺序选择的

for(int j=1;j<a.length-i;j++) 这句是从未排的数中选一个和目标数比较,循环到目标数前一个
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
这句是输出语句......T.T没什么好说的

将FOR语句定义看清,自己学着慢慢分析。才能真正学到东西。