请问:什么是冒泡法?常用的Java数据结构算法还有什么啊?谢谢!

解决方案 »

  1.   

    冒泡法是一种排序算法。并不是java专有的。
    比如对long型数组a排序。
    class ArrayBub{
    private long[] a;
    private int nElems;


    public ArrayBub(int max){
    a=new long[max];
    nElems=0;
    } public void insert(long value){
    a[nElems]=value;
    nElems++;
    } public void display(){
    for(int j=0;j<nElems;j++){
    System.out.print(a[j]+" ");
    System.out.println("");
    }

    }                  
                      //冒泡
    public void bubbleSort(){
    int out,in;
    for(out=nElems-1;out>1;out--)
    for(in=0;in<out;in++)
    if(a[in]>a[in+1])
    swap(in,in+1);
    }

    private void swap(int one,int two){
    long temp=a[one];
    a[one]=a[two];
    a[two]=temp;
    } public static void main(String[] args){
    int maxSize=100;
    ArrayBub arr;
    arr=new ArrayBub(maxSize);

    arr.insert(77);
    arr.insert(99);
    arr.insert(43);
    arr.insert(55);
    arr.insert(22);
    arr.insert(88);
    arr.insert(11);
    arr.insert(00);
    arr.insert(66);
    arr.insert(33);

    arr.display();

    System.out.println("----------");
    arr.bubbleSort();
    arr.display();
    }}
      

  2.   

    这是一种排序的算法啊,可以找本数据结构and算法的书好好学习一下,还有很多排序算法比如快速排序 插入排序 堆排序等等
      

  3.   

    比如有一组数据: 8   5   9   2   1 
    首先 8 和 5 比较, 因为 8 > 5 所以将它们的位置互换,于是就成这样:5  8  9  2  1
    然后 8 和 9 比较, 因为 8 < 9 ,所以它们的位置不必变动。
    再然后 9 和 2 比较,因为 9 > 2 ,所以将它们的位置互换,于是就成这样:5  8  2  9  1
    现经过一次比较,就成了这样: 5   8   2   1   9重复上面的操作,就成了这样: 5   2   1   8   9
    再重复一次:2   1   5   8   9
    最后一次:  1   2   5   8   9
    你看,这不就排成功了吗?总结:将一组数据两两比较,如果前一个比后一个大,就交换它们位置。经过 n-1 次循环后,就得出一个有序的数组。(当然有好的情况,也不用n-1次)
      

  4.   

    是一种数据结构中的排序算法:以下是java中的代码:
    /**
     *气泡排序算法
     */
    class BubbleSortAlgorithm extends SortAlgorithm {
        void sort(int a[]) throws Exception {
    for (int i = a.length; --i>=0; ) {
        boolean swapped = false;
        for (int j = 0; j<i; j++) {
    if (stopRequested) {
        return;
    }
    if (a[j] > a[j+1]) {
        int T = a[j];
        a[j] = a[j+1];
        a[j+1] = T;
        swapped = true;
    }
    pause(i,j);
        }
        if (!swapped)
    return;
    }
        }
    }