软件测试学习教程—Java实现冒泡排序

Java实现冒泡排序

(1)原理:

1、从第一个数据开始,与第二个数据相比较,如果第二个数据小于第一个数据,则交换两个数据的位置。

2、指针由第一个数据移向第二个数据,第二个数据与第三个数据相比较,如果第三个数据小于第二个数据,则交换两个数据的位置。

3、依此类推,完成第一轮排序。第一轮排序结束后,最大的元素被移到了最右面。

4、依照上面的过程进行第二轮排序,将第二大的排在倒数第二的位置。

5、重复上述过程,没排完一轮,比较次数就减少一次。

6、N个数据排序,需要进行N-1轮排序;第i轮排序需要的比较次数为N-i次。

(2)编码思路:

需要两层循环,第一层循环i表示排序轮数,第二层循环j表示比较的次数。

(3)代码实现:

/**

 * 冒泡排序

 */

public class BobSort {

    private int[] array;

    private int length;

    /**

     * 构造函数

     */

    public BobSort (int[] array){

        this.array = array;

        this.length = array.length;

    }

    /**

     * 打印数组中数据

     */

    public void display(){

        for(int i : array){

            System.out.print(i+" ");

        }

        System.out.println();

    }

    /**

     * 冒泡排序

     */

    public void bobSort(){

        for(int i=0;i

            for(int j=0;j

                if(array[j]>array[j+1]){

                    int temp = array[j+1];

                    array[j+1] = array[j];

                    array[j] = temp;

                }

            }

        }

    }

    /**

     * 测试方法

     */

    public static void main(String[] args){

        int[] array = {3,1,2,6,10};

        BobSort bobSort = new BobSort(array);

        System.out.println("排序前的数据为:");

        bobSort.display();

        bobSort.bobSort();

        System.out.println("排序后的数据为:");

        bobSort.display();

    }

}

运行结果为:

排序前的数据为:

3 1 2 6 10

排序后的数据为:

1 2 3 6 10