黑马程序员技术交流社区

标题: 小知识(冒泡排序) [打印本页]

作者: 微凉的暮色    时间: 2015-6-1 17:55
标题: 小知识(冒泡排序)
本帖最后由 微凉的暮色 于 2015-6-1 23:10 编辑

冒泡排序

(1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

(2)代码实现


public class bubbleSort {
public        bubbleSort(){
         int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
        int temp=0;
        for(int i=0;i<a.length-1;i++){
                for(int j=0;j<a.length-1-i;j++){
//  取 角标位 j 的数 跟j +1 相比较,大值 放 j+1 位,每循环一次 确定 倒数 i 的 最大值
                if(a[j]>a[j+1]){
                        temp=a[j];
                        a[j]=a[j+1];
                        a[j+1]=temp;
                }
                }
        }
        for(int i=0;i<a.length;i++)
        System.out.println(a);       
}
}



作者: L番茄X    时间: 2015-6-1 21:27
楼主表示我前一天学了这个,可是现在已经不记得了.可以注释一下吗?简单易明的谢谢.
作者: 小峰Raul    时间: 2015-6-1 21:42
冒泡排序有点小复杂
作者: ZYZQ    时间: 2015-6-1 21:56
感谢分享,何不再总结一下常见排序算法
作者: 城北一直晴。    时间: 2015-6-1 22:18
不错,加油。
作者: l598790586    时间: 2015-6-1 22:29
冒泡排序就是将最小的数据或者最大的数据先排到末尾,它比较的方法是第一个和第二个比较,第二个再和第三个比较,把大的或者小的放到后面,这样比完一轮,数组中最大的数据就在数组末尾了,然后再按照刚才的方法比较,但是最后一个不参与比较
作者: 微凉的暮色    时间: 2015-6-1 23:13
L番茄X 发表于 2015-6-1 21:27
楼主表示我前一天学了这个,可是现在已经不记得了.可以注释一下吗?简单易明的谢谢. ...

楼上给你说了,其实很简单,就是挨个比较,选大的放后面,一共循环 (元素个数 - 1) 次
每次 比较 (元素个数 - 循环次数)次
作者: 半世心修    时间: 2015-6-2 06:52
排序啊,这阵子搞的头疼~冒泡是最最基本的了
作者: 武汉小菜鸟    时间: 2015-6-2 10:45
提一个问题,如果数据已经是有序的,你的这个循环还用执行吗?效率呢?

你可能会说几个数据差不了多少?那如果排序的数上十万百万呢?

所以可以改进一下算法

作者: 微凉的暮色    时间: 2015-6-2 14:26
武汉小菜鸟 发表于 2015-6-2 10:45
提一个问题,如果数据已经是有序的,你的这个循环还用执行吗?效率呢?

你可能会说几个数据差不了多少?那 ...

:o
有序的需要排序么?
作者: 武汉小菜鸟    时间: 2015-6-2 16:49
微凉的暮色 发表于 2015-6-2 14:26
有序的需要排序么?

那只有一个数据是逆序的呢?还要循环这么多次
作者: qian0217wei    时间: 2015-6-2 17:34
冒泡排序还是很简单的,关键就是两个for循环语句,建议最好将元素之间的交换单独封装成一个方法,这样可以提高代码的复用性!
作者: 灵界    时间: 2015-6-2 21:12
理解,但记不住
作者: 飘过的云    时间: 2015-6-2 21:25
冒泡    曾经让人 纠结 的排序方法  必须  掌握  
作者: 海角秋风    时间: 2015-6-2 21:29
冒泡排序,先排最后的,选择排序先排最前的。
作者: 银哥    时间: 2015-6-3 22:29
不错,学习中
作者: d18819042875    时间: 2015-6-3 22:33
多谢楼主的分享精神




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