通过冒泡法对数组元素排序
int [] a={2,5,7,9,1,0}
/*通过冒泡法对数组元素排序
int [] a={2,5,7,9,1,0}*/
public class aa {
public static void main(String[] args) {
int [] a={2,5,7,9,1,0};
int temp = 0;
/*冒泡排序是两两比较,条件成立,交换位置
如4,3,5 从小到大排序,冒泡:4和3比较,条件成立,互换位置---3,4,5;
4和5再比较,不成立,不互换。这里共比较两次,所以 i<a.length-1*/
//外层循环控制次数
for (int i = 0;i<a.length-1;i++){
//设置监视
boolean flag = true;
/*a.length-1-i,每冒泡一次,最后一位是最大或者最小的,所以这位不用再比较
则,内层循环比较次数-i*/
for (int j=0;j<a.length-1-i;j++){
if (a[j]>a[j+1]){
temp = a[j];
a[j]=a[j+1];
a[j+1]=temp;
//运行到这里,值为false,说明发生了排序,则继续执行循环
flag=false;
}
}
//如果这里的flag仍然为true,说明排序未发生,则停止循环
if(flag){
break;
}
}
System.out.println("从小到大:");
for (int i = 0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println();
System.out.println("从大到小:");
for (int i = a.length-1;i>=0;i--){
System.out.print(a[i]+" ");
}
}
}
这是冒泡排序的简单优化版,刚刚学习java,有不对的地方,欢迎指正,勿喷