冒泡排序 Java数据结构与算法

本文介绍了一个简单的冒泡排序算法实现,通过定义一个包含插入、显示和排序方法的类,实现了对整数数组的排序功能。文章提供了一个完整的Java示例程序,展示了如何使用该类进行排序。

 

class ArrayBub {

    private long[] a; // ref to array a
    private int nElems; // number of date items
    public ArrayBub(int max) { // constructor
        a = new long[max]; // create the array
        nElems = 0; // no items yet
    }
    
    /**
     * 插入
     * 
@param value
     
*/
    public void insert(long value) // put element into array
    {
        a[nElems] = value; // insert it
        nElems++; // increment size
    }

    /*
     * 显示数据
     
*/
    public void display() // displays array contents
    {
        for (int j = 0; j < nElems; j++)
            // for each element,
            System.out.print(a[j] + " "); // display it
        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);
    }// end bubbleSort()
        
// --------------------------------------------

    private void swap(int one, int two) {
        long temp = a[one];
        a[one] = a[two];
        a[two] = temp;
    }
    // ---------------------------------------------
}// end class ArrayBub
// /////////////////////////////////////////////////

public class bubbleSort {
    public static void main(String args[]) {
        int maxSize = 100; // array size
        ArrayBub arr; // reference to array
        arr = new ArrayBub(maxSize); // create the array
        arr.insert(77); // insert 10 items
        arr.insert(99);
        arr.insert(44);
        arr.insert(55);
        arr.insert(22);
        arr.insert(88);
        arr.insert(11);
        arr.insert(00);
        arr.insert(66);
        arr.insert(33);
        arr.display(); // display items
        arr.bubbleSort(); // bubble sort them
        arr.display();
    }// end main()
}// end class BubbleSortApp

 

转载于:https://www.cnblogs.com/cntour365/archive/2012/04/10/2440181.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值