首页 > 开发 > Java > 正文

java版本的冒泡算法

2020-02-05 14:00:14
字体:
来源:转载
供稿:网友
  • 本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。
  • /**
    文件名:maopao.java
    描述: java版本的冒泡算法
    作者:慈勤强
    email:[email protected]
    **/

    class maopao
    {

    public static void test1() //最普通的冒泡算法,需要比较(n-1)*(n-1)次
    {
    int[] iarray={10,5,2,3,321,76,3221,98,86,39};
    int k=0;
    int icount=0;
    for(int j=0;j<iarray.length-1;j++)
    {
    for(int i=0;i<iarray.length-1;i++)
    {
    if(iarray[i]>iarray[i+1])
    {
    k=iarray[i];
    iarray[i]=iarray[i+1];
    iarray[i+1]=k;
    }
    icount++;
    }
    }

    system.out.println("共做比较次数: "+icount);
    for(int i=0;i<iarray.length;i++)
    {
    system.out.print(" "+iarray[i]);
    }

    }
    public static void test2() //稍微作了一下改进,加入一个布尔变量,当顺序已经排好后,就不用做额外的比较了
    {
    int[] iarray={10,5,2,3,321,76,3221,98,86,39};
    int k=0;
    int icount=0;
    boolean b=false;
    for(int j=0;j<iarray.length-1;j++)
    {
    b=false;
    for(int i=0;i<iarray.length-1;i++)
    {
    if(iarray[i]>iarray[i+1])
    {
    k=iarray[i];
    iarray[i]=iarray[i+1];
    iarray[i+1]=k;
    b=true;
    }
    icount++;
    }
    if(!b) break;
    }

    system.out.println("/r/n/r/n共做比较次数: "+icount);
    for(int i=0;i<iarray.length;i++)
    {
    system.out.print(" "+iarray[i]);
    }

    }
    public static void main(string[] args)
    {
    test1();
    test2();
    }
    }



    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表