冒泡排序学习心得(Java实现)

来源:互联网 发布:天津seo建站 编辑:程序博客网 时间:2024/05/30 02:22


public class arrayDemo05 {
public static void main(String args[]){
/*
* 冒泡排序
*/
int temp;
int[] arr={23,12,34,2,67};
// for (int i = 0; i < arr.length-1; i++) {
// for (int j =0; j <arr.length-i-1; j++) {
// if(arr[j]>=arr[j+1]){
// temp=arr[j];
// arr[j]=arr[j+1];
// arr[j+1]=temp;
//
// }
// }
// }
// for (int i = 0; i < arr.length; i++) {
// System.out.println(arr[i]);
// }




/////jikexueyuan
// for (int i = 0; i < arr.length-1; i++) {
// for (int j = i+1; j < arr.length; j++) {
//
// if(arr[j]>=arr[i]){
// temp=arr[j];
// arr[j]=arr[i];
// arr[i]=temp;
//
// }
// }
// System.out.println("第"+(i+1)+"次排序:");
// for (int j = 0; j < arr.length; j++) {
// System.out.print(arr[j]+" ");
// }
// System.out.println();
//
// }
// for (int i = 0; i < arr.length; i++) {
// System.out.println(arr[i]);
// }


//最好的解法
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]){
  temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}

}
//嵌套的感想:外层的嵌套就是第几轮比较,一般来说比较(数组长度-1)轮,如果i从1算起,就是i < arr.length,内部的循环是具体的数比较了,
//就是涉及到两两去比较了具体需要循环多少次才可以让这一轮里面的数可以两两比较完呢(每一轮需要比较的数的数目是不同的),就是这一层循环需要考虑的问题,有博客验证
//(地址:http://www.cnblogs.com/sincoolvip/p/5449202.html)知,需要这么多次可以:arr.length-1-i,记住就好了,这个不需要理解。
//(但记住i是从0算起的时候才是这样,起始值改了就要有相应的改动).
System.out.println("第"+(i+1)+"次:");
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[j]+"   ");
}
System.out.println();
}
System.out.println();
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"     ");
}


}
}
1 0
原创粉丝点击