黑马程序员技术交流社区

标题: 关于冒泡排序法,求每个步骤的详细解释 [打印本页]

作者: 饭特稀    时间: 2015-11-25 11:31
标题: 关于冒泡排序法,求每个步骤的详细解释


作者: sun4w    时间: 2015-11-25 11:47
可以先在本子上画一画,会好理解很多。

冒泡的思想就是,一个一个的去进行比较,如果第i位小于第i+1位,那么将他们的位置进行交换。

这样循环一遍后,我们能保证数组中的最后一位是最大的,对吧。

如此,反复执行这个过程,并且每次只需要排到上次排好的最后位置-1

---在本子上画一画就知道了。如果这个思想搞懂了,还看不懂程序的话,那就说明是java语句掌握的不够娴熟了
作者: 饭特稀    时间: 2015-11-25 13:23
sun4w 发表于 2015-11-25 11:47
可以先在本子上画一画,会好理解很多。

冒泡的思想就是,一个一个的去进行比较,如果第i位小于第i+1位,那 ...

多谢指导,刚开始学习java,基础知识不扎实
作者: Little_jie    时间: 2015-11-25 14:30
冒泡排序每次能找出当前排序中最大的数,相邻的两个数比较,找出大数,直至排序完毕
作者: hansnowqiang    时间: 2015-11-25 18:16
这是舞蹈演示排序算法,比较形象。
http://pan.baidu.com/s/1i3fgoiL
作者: 梦想家Eva    时间: 2015-11-25 18:58
楼主,加油吧,好好看老师的视屏,自己再在本子上一步一步的画几遍
作者: yuhongzhen    时间: 2015-11-25 19:12
冒泡排序是两个for循环完成的,外层for循环控制比较的遍数,内层for循环负责两两比较,符合条件的交换位置。public static void bubbleSort(int[] arr)
        {
                for(int x=0; x<arr.length-1; x++)//控制比较的遍数
                {
                        for(int y=0; y<arr.length-x-1; y++)//-x:让每次参与比较的元减。
                                                                                                //-1:避免角标越界。
                        {
                                if(arr[y]>arr[y+1])
                                {
                                        int temp = arr[y];
                                        arr[y] = arr[y+1];
                                        arr[y+1] = temp;
                                }
                        }
                }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2