java版本的冒泡算法

王朝java/jsp·作者佚名  2008-05-31
宽屏版  字体: |||超大  

/**

文件名:MaoPao.Java

描述: java版本的冒泡算法

作者:慈勤强

Email:cQQ1978@Gmail.com

**/

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();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有