码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-05-26 13:21:38      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:技术   sys   view   性能分析   markdown   ble   javase   java se   技术分享   

1 基本思想
设排序表长为n,从后向前或者从前向后两两比较相邻元素的值,如果两者的相对次序不对(A[i-1] > A[i]),则交换它们,其结果是将最小的元素交换到待排序序列的第一个位置,我们称它为一趟冒泡。下一趟冒泡时,前一趟确定的最小元素不再参与比较,待排序序列减少一个元素,每趟冒泡的结果把序列中最小的元素放到了序列的”最前面”。

2,算法的实现(Java)

package Algorithm;

public class BubleSort {

    /**
     * @param args
     */
    public static void main(String[] args) {
        int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};
        System.out.println("排序之前:");
        BubleSort.output(data);
        System.out.println();
        System.out.println("排序之后:");
        BubleSort.buble_sort(data);
        BubleSort.output(data);
    }

    public static void buble_sort(int[] arr){

        for(int i=0;i < arr.length-1;i++){
            for(int j =0; j < arr.length-i-1;j++){
                if(arr[j] > arr[j+1]){
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }

    //输出打印
    public static void output(int[] arr){
        for(int i=0;i<arr.length;i++){
                System.out.print(arr[i]+"\t");
            }
        }


}

得到的结果为:
技术分享


3,性能分析

冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1),它是一种稳定的排序算法。

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

标签:技术   sys   view   性能分析   markdown   ble   javase   java se   技术分享   

原文地址:http://www.cnblogs.com/bjgua/p/6907661.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!