当前位置: 代码迷 >> Java相关 >> 冒泡排序的疑问
  详细解决方案

冒泡排序的疑问

热度:269   发布时间:2008-10-07 08:47:26.0
冒泡排序的疑问
public void bubbleSort(int [] array2){
         int temp;
        for(int i=0;i<array2.length;i++){
            for(int j=0;j<array2.length-i-1;j++){
                if(array2[j]>=array2[j+1]){
                    temp=array2[j];//为什么要temp???
                    array2[j]=array2[j+1];//与下一条语句不能交换位置?为什么
                         array2[j+1]=array2[j];
                                         array2[j+1]=temp;
                                     }
            }
        }
    }
temp=array2[j];
array2[j+1]=temp;
   //为什么要有一个temp???老师说是临时存放,是什么意思,该怎么理解???
array2[j]=array2[j+1]
array2[j+1]=array2[j];这两条语句不能互换位置?为什么???
搜索更多相关的解决方案: 疑问  冒泡  

----------------解决方案--------------------------------------------------------
回复 1# bizika526 的帖子
temp=array2[j];
array2[j]=array2[j+1];
array2[j+1]=array2[j];
array2[j+1]=temp;
这几句就是为了交换array2[j],array2[j+1]的值,LZ应该明白吧。。至于为什么要TEMP,想想如果把temp=array2[j]去掉。。接着直接运行array2[j]=array2[j+1]的话。就相当与把array2[j+1]的值复值给array2[j],则此时array2[j]的原值就被覆盖掉了。。如果不使用temp=array2[j],怎么保存array2[j]的值。

array2[j]=array2[j+1]
array2[j+1]=array2[j];这两条语句不能互换位置?为什么???
其实从程序本身来说。。这2条语句互换位置没什么作用。不过如果换了那么就要改temp=array[j+1],至于原因LZ想想应该就明白了
----------------解决方案--------------------------------------------------------
这里牵涉到覆盖问题。

给你一个假设:假如要你把杯子里装满的可乐换成雪碧。你怎么做?你肯定得先找个东西装可乐吧,这个东西就是所谓的临时存储。
----------------解决方案--------------------------------------------------------
临时存放就是暂时放一下了
----------------解决方案--------------------------------------------------------
我们老师在C语言的第一节课 让我们写一个将两个瓶子的酒互换的算法,如果你要交换两个瓶子里面的酒,难道不用第三个瓶子来中间暂存下吗?temp就是那个暂存的瓶子。
----------------解决方案--------------------------------------------------------
记得我看过一道题,交换两个变量的值不需要第三变量。
----------------解决方案--------------------------------------------------------
temp=array2[j];//
array2[j]=array2[j+1];//与下一条语句不能交换位置?为什么
    array2[j+1]=array2[j];
    array2[j+1]=temp;


你的疑问上面解决了
但是 你的代码是错的啊  

你这样到最后显示的应该都是 最原始的array2[j+1]里面的值了
----------------解决方案--------------------------------------------------------
  相关解决方案