`

【转】第二课 冒泡排序

阅读更多

1.冒泡排序类
package com.flysnow.chap03;   
  
/**  
 * 冒泡排序  
 * @author 飞雪无情  
 * @since:2010-3-25  
 */  
public class ArrayBub {   
    private long[] a;   
    private int nElems;   
    public ArrayBub(int max){   
        a=new long[max];   
        nElems=0;   
    }   
    /**  
     * 插入元素  
     * @param value  
     */  
    public void insert(long value){   
        a[nElems]=value;   
        nElems++;   
    }   
    /**  
     * 打印元素  
     */  
    public void display(){   
        for(int i=0;i<nElems;i++){   
            System.out.print(a[i]+" ");   
        }   
        System.out.println();   
    }   
    /**  
     * 冒泡排序  
     */  
    public void bubbleSort(){//性能O(N^2)   
        for(int out=nElems-1;out>0;out--){//外循环,控制趟数   
            for(int in=0;in<out;in++){//内循环,控制一趟比较次数   
                if(a[in]>a[in+1]){//交换位置   
                    swap(in,in+1);   
                }   
            }   
        }   
    }   
    /**  
     * 交换  
     * @param one 数组索引  
     * @param two 数组索引  
     */  
    private void swap(int one, int two) {   
        long temp=a[one];   
        a[one]=a[two];   
        a[two]=temp;   
    }   
}  


2.冒泡排序测试 
package com.flysnow.chap03;   
  
import java.util.Random;   
  
/**  
 * 冒泡排序测试  
 * @author 飞雪无情  
 * @since:2010-3-25  
 */  
public class BubbleSortApp {   
    public static void main(String[] args){   
        ArrayBub bub=new ArrayBub(100);   
        Random random=new Random();   
        for(int i=0;i<10;i++){//添加10个随机数   
            bub.insert((long)(random.nextFloat()*100));   
        }   
        bub.display();//未排序   
        bub.bubbleSort();//排序   
        bub.display();//排序后   
    }   
}

3.总结
算法思想:

第一趟,从队列的最左边开始,比较0号和1号的数据,如果0号的数据大于1号的,则交换位置,否则什么都不做。然后右移一个位置,比较1号和2号的数据,和刚才一样,一次类推走完第一趟。
第二趟,也是从最左边开始,比较0号和1号数据。。。一直到n-1号数据
........
直到比较到0号数据.

  • 大小: 17.4 KB
分享到:
评论

相关推荐

    js冒泡排序两种排序代码

    js冒泡排序,冒泡排序的工作原理,我们有一个未排序的数组arr = [ 1, 4, 2, 5, -2, 3 ]任务是使用冒泡排序对数组进行排序。 冒泡排序比较索引 0 中的元素,如果第 0 索引大于第 1 索引,则交换值,如果第 0 索引...

    冒泡排序-排序过程 冒泡排序-排序过程

    比如用冒泡排序将4、5、7、1、2、3这6个数排序。在该列中,第二趟排序结束后,数组已排好序,但计算机此时并不知道已经反排好序,计算机还需要进行一趟比较,如果这一趟比较,未发生任何数据交换,则知道已排序好,...

    实验3 冒泡排序程序

    实验3 冒泡排序程序

    java算法——冒泡排序

    * 冒泡排序: * 每次在无序队列里将相邻两个数一次进行比较, * 将小数调到前面,逐次比较,直至将最大的数移到 * 最后。将剩下的N-1个数继续比较,将次大数移至 * 倒数第二位。

    Java排序之冒泡排序

    重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二...

    数据结构 冒泡排序 输出每一趟结果

    用函数实现冒泡排序,并输出每趟排序的结果(要求当一趟冒泡过程中不再有数据交换,则排序结束) Input 第一行:键盘输入待排序关键的个数n 第二行:输入n个待排序关键字,用空格分隔数据 Output 每行输出每趟排序...

    asp.net 冒泡排序

    重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二...

    java基础 经典算法之冒泡排序详解

    1.冒泡排序的原理:每次都从第一个元素开始(索引0),向后两两比较,只要后面的比前面的大,就交换(从大到小) 2.通过画图分析,5个数字排4趟,n数字排n-1趟,而外层的for循环代表的是循环的趟数,所以外层循环的结束条件是...

    冒泡排序法

    冒泡排序,是指计算机的一种排序方法,它的时间复杂度为O(n^2),虽然不及堆排序、快速...冒泡排序是经过n-1趟子排序完成的,第i趟子排序从第1个数至第n-i个数,若第i个数比后一个数大(则升序,小则降序)则交换两数

    用LabVIEW编写冒泡排序

    在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的...

    Java冒泡排序代码

    //测试冒泡排序 /********************* * int[] num = {23,45,76,78,98,54,}; 第一次 23 45 76 78 54 98 第二次 23 45 76 54 78 98 第三次 23 45 54 76 78 98 输出 :23 45 54 76 78 98 当判断为正确时就退出...

    c#编写的冒泡排序法则

    冒泡排序是数据结构中的一种排序法则,他是比较相邻两数的大小,如果第一个数大于第二个数则交换位置,再用第二个数去比较第三个数,以此类推

    C语言排序算法冒泡排序

    时间复杂度:冒泡排序的时间复杂度为O(n^2),其中n是待排序序列的长度。这是因为冒泡排序需要进行多轮遍历,并且每一轮遍历都需要比较和交换相邻元素。 稳定性:冒泡排序是一种稳定的排序算法,即相等元素的顺序在...

    C例子:冒泡排序

    该程序是我写的博客“一起talk C栗子吧(第二十六回:C语言实例--冒泡排序)”的配套程序,共享给大家使用

    嵌入式开发之冒泡排序

    arm汇编之冒泡排序 嵌入式开发 AREA Sort,CODE,READONLY :首先用AREA伪代码加上CODE,表明下面引出的将是一个代码段(于此相对的还有数据段DATA),ENTRY 和END成对出现,说明他们之间的代码是程序的主体 ENTRY:...

    冒泡排序的基本概念冒泡排序的基本概念是:依次比较相邻的两个数,将大数放在前面,小数放在后面。即首先比较第1个和第2个数,将大数放前,小数放后。然后比较第2个数和第3个数,将大数放前,小数放后,如此继续,直至比较最后两个数,将大数放前,小数放后,此时第一趟结束

    冒泡排序的基本概念是:依次比较相邻的两个数,将大数放在前面,小数放在后面。即首先比较第1个和第2个数,将大数放前,小数放后。然后比较第2个数和第3个数,将大数放前,小数放后,如此继续,直至比较最后两个数,...

    C#文档冒泡排序,值传递与址传递

    冒泡排序,值传递与址传递,适合初学C#基础的人练习的例子

    汇编语言冒泡排序

    原数顺序 第1轮第1次 第1轮第2次 第1轮第3次 第2轮第1次 第2轮第2次 第3轮第1次 8 2 2 2 2 2 2 2 8 5 5 5 4 4 5 5 8 4 4 5 5 4 4 4 8 8 8 8 N个数,共N-1轮,第i轮要比较N-i次,每轮设立交换标志。

    PTA字符串冒泡排序(C语言版)

    7-3 字符串的冒泡排序 (20分) 我们已经知道了将N个整数按从小到...输出冒泡排序法扫描完第K遍后的中间结果序列,每行包含一个字符串。 输入样例: 6 2 best cat east a free day 输出样例: best a cat day east free

    javascript冒泡排序源代码

    直接运行html 文件即可,第一个文本框为要排序的数字,第二位为排序后的现实的地方

Global site tag (gtag.js) - Google Analytics