当前位置:编程学习 > JAVA >>

java冒泡循环

java冒泡循环谁能发下源码 --------------------编程问答-------------------- 网上很多啊。 --------------------编程问答--------------------
public static void main(String[] args) {
int[]  a={3,435,2,56,25,78};
for (int i = 0; i < a.length; i++) {
for(int j=i+1;j<a.length;j++){
int temp=0;
if(a[i]<a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for (int i : a) {
System.out.println(i);
}
}
--------------------编程问答-------------------- 代码我不贴了。主要还是理解,我贴个步骤和图,有助于你理解

步骤:

    比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    针对所有的元素重复以上的步骤,除了最后一个。
    持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

排序效果:


--------------------编程问答--------------------
引用 3 楼 huxiweng 的回复:
代码我不贴了。主要还是理解,我贴个步骤和图,有助于你理解

步骤:

    比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    针对所有的元素重复以上的步骤,除了最后一个。
    持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

排序效果:
--------------------编程问答-------------------- 2楼的排序还有待改进哈
public static void main(String[] args) {
        int[]  a={3,435,2,56,25,78};
    boolean type = true;
        for (int i = 1; i < a.length && type; i++) {
            type = false; //如果本次遍历都没有移动元素,则已是有序。
            for(int j=0;j<a.length-i;j++){
                if(a[j]>a[j+1]){
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1]=temp;
                    type = true;
                }
            }
        }
    }
注意两个for里面的遍历方式 --------------------编程问答-------------------- /**
 * 这是一个对数组进行冒泡排序从小到大的方法
 * @param arr 传入的数组
 * @return arr 排序后的有序数组
 */
public int[] MaoPaoSort(int[] arr){
/*冒泡排序的思想是(拿从小到大的顺序来说):先拿出这个数组里的第一个数A,与它后面的 数依次
进行比较大小,如先与角标为1处的值B进行比较,如果A > B则将两者位置上面的值互换,重复此操作
可以得到最小的数放在角标为0处了,然后后面的数重复这个步骤就可以依次得到剩下的数中最小的
值了,下面是程序的小例子*/

//第一层循环,确定进行多少次选出最小值的循环,从角标为0到角标为arr.length-2处即可
//剩下的最后一个不用比较
for (int i = 0; i < arr.length - 1; i++) {
//第二层循环是第一层进行循环处的值与它后面的所有的数都进行比较大小的操作
for (int j = i + 1; j < arr.length; j++) {
//当第一层循环处的值大于它后面的数时进行位置互换
if(arr[i] > arr[j]){
//定义一个中间变量temp
int temp ;
//位置互换
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}

return arr;
} --------------------编程问答-------------------- 冒泡排序和交换排序很容易搞混了,LZ可以甄别下。 --------------------编程问答--------------------
public static void main(String[] args) {
        int[]  a={3,435,2,56,25,78};
    
        for (int i = 1; i < a.length ; i++) {
        
            for(int j=0;j<a.length-i-1;j++){
                if(a[j]>a[j+1]){  //默认由小到大
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1]=temp;
                 
                }
            }
        }
    } --------------------编程问答--------------------
引用 3 楼 huxiweng 的回复:
代码我不贴了。主要还是理解,我贴个步骤和图,有助于你理解

步骤:

    比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    针对所有的元素重复以上的步骤,除了最后一个。
    持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

排序效果:

这个回答略叼! --------------------编程问答--------------------
引用 9 楼 shanxiuwei 的回复:
Quote: 引用 3 楼 huxiweng 的回复:

代码我不贴了。主要还是理解,我贴个步骤和图,有助于你理解

步骤:

    比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    针对所有的元素重复以上的步骤,除了最后一个。
    持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

排序效果:

这个回答略叼!


我比较感兴趣的是图片的动画是java实现的吗!
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,