1. 冒泡排序

1、基本思想:在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即:每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。

2、實例
這裏寫圖片描述

3、java實現

package com.sort;

//穩定
public class 冒泡排序 {
    public static void main(String[] args) {
        int[] a={1,5,4,6,2,8,9,3,2,1};
        System.out.println("排序之前:");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");
        }
        //冒泡排序
        for (int i = 0; i < a.length; i++) {
            for(int j = 0; j<a.length-i-1; j++){
                if(a[j]>a[j+1]){
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
        System.out.println();
        System.out.println("排序之後:");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");
        }
    }
}

  4、分析

  冒泡排序是一種穩定的排序方法。 

•若文件初狀爲正序,則一趟起泡就可完成排序,排序碼的比較次數爲n-1,且沒有記錄移動,時間複雜度是O(n)
•若文件初態爲逆序,則需要n-1趟起泡,每趟進行n-i次排序碼的比較,且每次比較都移動三次,比較和移動次數均達到最大值∶O(n2)
•起泡排序平均時間複雜度爲O(n2)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章