A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

分别用for循环 和while循环编译一个冒泡排序的案例.
从小到大排序.
并详细解释代码块的功能

2 个回复

倒序浏览
public class Demo
{
        public static void main (String args[])
        {
                //定义一个无序数组,等待排序
                int []array={67,45,55,34,31,49,29};
                System.out.println("冒泡排序");
                //调用下面的静态方法maoPao();参数为数组array
                maoPao(array);
                System.out.println();
        }
        //静态方法maoPao(),参数array数组
        public static void maoPao(int []array)
        {
                for(int i=0;i<array.length;i++)//比较次数
                {
                        for(int j=0;j<array.length-i-1)//数组元素,两两比较次数
                        if(array[j]>array[j+1])//数组中两两元素比较
                        {
                                //交换位置
                                int temp=array[j];
                                array[j]=array[j+1];
                                array{j+1]=temp;
                        }
                }
        }
        //直到比较结束,打印出新数组
        for(int i=0;i<array.length;i++)
        {
                System.out.print(array[i]+" ");
    }
}
回复 使用道具 举报
xiaozeiyes 发表于 2015-9-3 09:09
public class Demo
{
        public static void main (String args[])

借兄的代码,我优化一下置换功能:


public class Demo
{
        public static void main (String args[])
        {
                //定义一个无序数组,等待排序
                int []array={67,45,55,34,31,49,29};
                System.out.println("冒泡排序");
                //调用下面的静态方法maoPao();参数为数组array
                maoPao(array);
                System.out.println();
        }
        //静态方法maoPao(),参数array数组
        public static void maoPao(int []array)
        {
                for(int i=0;i<array.length;i++)//比较次数
                {
                        for(int j=0;j<array.length-i-1)//数组元素,两两比较次数
                        if(array[j]>array[j+1])//数组中两两元素比较
                        {
                                //交换位置(优化部分:如果在这个代码中再加入其他方法,这个置换函数可体现代码的复用性


                                Swap(arrary,j,j+1);
                        }
                }
        }
       
        public static void Swap(int[] array,int a,int b)        //定义一个方法,实现两个数的互换。
        {
                int temp=array[a];
                array[a]=array;
                array=temp;
        }



        //直到比较结束,打印出新数组
        for(int i=0;i<array.length;i++)
        {
                System.out.print(array+" ");
    }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马