冒泡排序示例

原创 2017年05月22日 23:28:05

一、概念与算法思想
冒泡排序形象的比喻为锅中的开水沸腾,锅中的气泡由锅底向上冒出,气泡由小变大。冒泡排序法又称为交换排序法,由第一个元素开始,比较相邻元素的大小。
二、优缺点
最坏情况,比较n(n-1)/2,时间复杂度为O(n^2),最好情况是一次就完成排序,时间复杂度为O(n)。
* 只需要一个额外的空间,所以空间复杂度为最佳
* 此排序法适用于数据量小或者有部分数据已经排序的情况下。
Import java.demo.bubblesort;
/*
*冒泡排序算法
*/这里写代码片

public class CHO8_01 {
    public static void main(String args[]){
        int data[]=new int[]{8,5,3,4,1,7};      
        int temp=0;
        System.out.println("冒泡排序法:");
        System.out.println("请输入原始数据:");
        for(int i=0;i<6;i++){
            System.out.println(data[i]+"");
        }
        for(int i=5;i>0;i--){ //扫描次数
            for(int j=0;j<i;j++){  //交换次数
//              比较相邻两数的大小,如第一个数较大则交换
                if(data[j]>data[j+1]){
                    temp=data[j];
                    data[j]=data[j+1];
                    data[j+1]=temp;

                }
            }
            System.out.println("第"+(6-i)+"的排序结果");
            for(int j=0;j<6;j++){
                System.out.println(data[j]+"");
            }
            System.out.println("\n");


        }
        System.out.println("排序后的结果为:");
        for(int i=0;i<6;i++){
            System.out.println(data[i]+"");
        }
        System.out.println("\n");
    }

}

*/
/由以上的程序执行可知,不管程序是否执行完数据的排序,都要进行 n(n-1)/2次,我们可以增加适当的判断条件经行
* 程序的优化。
* 下面是改良后的冒牌排序法
*/

public class CHO8_01 extends Object
{
    int data[]=new int[]{4,6,2,7,8,9};

    public static void main(String args[]){
        long startTime=System.currentTimeMillis();//计算执行时间

        CHO8_01 text=new CHO8_01();
        int i,j,temp;
        System.out.println("改良后的冒泡排序法:");
        System.out.println("请输入数据:");
        text.showdata();
        text.bubble();
        long endTime=System.currentTimeMillis();
        System.out.println("程序运行时间:"+(endTime-startTime)+"ms");

    }

    /**
     * showdata()方法打印出数据
     */
    private void showdata() {
        // TODO Auto-generated method stub
        for(int i=0;i<6;i++){
            System.out.println(data[i]+"");
        }
        System.out.println("\n");
    }

    /**
     * sort()方法进行排序
     */
    private void bubble() {
        // TODO Auto-generated method stub

        int i,j,flag,temp;
        for(i=5;i>0;i--){
            flag=0;//flag用来判断是否有交换
            for(j=0;j<i;j++){
                if(data[j]>data[j+1]){
                    temp=data[j+1];
                    data[j+1]=data[j];
                    data[j]=temp;
                    flag++;   //如果有交换则flag不为零
                }
            }
            if(flag==0){ //flag为零则不进行交换
                break;
            }
            System.out.println("第"+(6-i)+"此排序结果");
            for(j=0;j<6;j++){
                System.out.println(data[j]+"");
            }
            System.out.println("\n");
        }
        System.out.println("排序后的结果为:");
        showdata();     
    }   
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

例子说冒泡排序

1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3. 针对所有的元素重复以上...
  • u010927640
  • u010927640
  • 2016年03月31日 20:04
  • 4055

汇编实现排序——冒泡排序

冒泡排序算法的运作如下:(从后往前) 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的...
  • u010429311
  • u010429311
  • 2016年06月21日 23:20
  • 8215

排序算法之冒泡排序的思想以及Java实现

1 基本思想 设排序表长为n,从后向前或者从前向后两两比较相邻元素的值,如果两者的相对次序不对(A[i-1] > A[i]),则交换它们,其结果是将最小的元素交换到待排序序列的第一个位置,我们称它...
  • whq19890827
  • whq19890827
  • 2016年08月14日 21:12
  • 1375

Java List集合冒泡法排序的两种实现

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已...
  • u013751758
  • u013751758
  • 2014年11月10日 20:49
  • 2201

冒泡排序由浅入深详细分析图解

冒泡排序 * 相邻元素两两比较,大的往后放,第一次完毕后,最大值就出现在 * 最大索引处,同理,继续,即可得到一个排序好的数组 * * 规律: * 1、两两比较,大的往后放。 ...
  • starjuly
  • starjuly
  • 2016年12月25日 19:49
  • 3114

java将list集合冒泡排序

java将List集合进行冒泡排序。。。
  • xiaosheng_papa
  • xiaosheng_papa
  • 2015年01月05日 13:55
  • 4038

[排序算法]--冒泡排序的三种实现(Java)

冒泡排序是非常好理解的,以从小到大排序为例,每一轮排序就找出未排序序列中最大值放在最后。 设数组的长度为N: (1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。(2)这样...
  • u010853261
  • u010853261
  • 2017年02月06日 12:53
  • 3311

改进的冒泡排序算法

冒泡排序算法,是最基本的排序算法, 它属于交换排序。 冒泡排序过程 设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描...
  • tjunxin
  • tjunxin
  • 2013年03月23日 15:36
  • 25106

冒泡排序的优化及最好最差情况

最开始学习的时候并没有对其进行深入的思考,现在对其进行总结,冒泡排序的思想也就不需要赘述。 最开我们会将数列进行n-1趟排序,每趟又进行一个循环的冒泡,如果是升序,我们就会将相邻的两个元素进行比较...
  • qingqiulengya
  • qingqiulengya
  • 2016年06月05日 20:31
  • 2213

经典排序算法(1)——冒泡排序算法详解

冒泡排序(Bubble Sort)是一种典型的交换排序算法,通过交换数据元素的位置进行排序。 一、算法基本思想 (1)基本思想 冒泡排序的基本思想就是:从无序序列头部开始,进行两两比较,根据大...
  • guoweimelon
  • guoweimelon
  • 2016年03月16日 10:52
  • 17934
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:冒泡排序示例
举报原因:
原因补充:

(最多只允许输入30个字)