JAVA数据结构和算法第二版书中冒泡排序貌似有错?
今天周末,无聊,回顾下数据结构,然后按对冒泡的理解随便写了个冒泡排序,通了!~,翻开经典:《JAVA数据结构和算法第二版》,看看经典是怎么写的。嗯,经典的思路是要好些,虽然比较次数一样,但是循环次数少很多,运行了下,啊!?怎么排序不对!?
?
如下我的代码:
?
??
?运行结果:
?
?
?
?
书中原始测试:77 99 44 55 22 88 11 0 66 33 0 11 22 33 44 55 66 77 88 99 我变了下数组数据的测试:3 21 46 75 56 39 7 95 93 1 3 1 7 21 39 46 56 75 93 95??
貌似真有错?!
?
1 楼 sjzzdf 2011-07-10 for (int i = 1; i < data.length; i++) {
if (data[i] < data[i - 1]) {
swap(data, i, i - 1); ????你冒泡排序的j呢?没用上?而且你冒泡的算法似乎就没搞清楚。
下面是我写的:
public class BubbleSort{
public static void main(String[] args) throws Exception{
int []ary=new int[]{9,8,7,6,4,2,4};
int len=ary.length;
for(int i=0;i<len-1;i++)
for(int j=i+1;j<len;j++)
{
if(ary[j]<ary[i]){
int temp=ary[j];
ary[j]=ary[i];
ary[i]=temp;
}
}
for(int k=0;k<len;k++)
{System.out.print(" "+ary[k]);}
}
} 2 楼 zp820705 2011-07-11 你说的对,受教。