Java 數據結構與算法系列之冒泡排序

1、前言

相信大部分同窗都已經學過數據結構與算法這門課了,而且咱們可能都會發現一個現象就是咱們所學過的數據結構與算法類的書籍基本都是使用 C 語言來寫的,好像沒見過使用 Java 寫的數據結構與算法。java

帶着這個好奇心,我去查了下資料,國內基本找不到使用 Java 寫的數據結構與算法書籍,有一本書叫《Java 數據結構與算法》,這本書的代碼是使用 Java 實現的,不過這本書是國內的學者翻譯國外的書籍寫出來的,我的感受這本書對於初學者來講,仍是比較難理解的。算法

冒泡排序一種運行效率很低的排序算法,然而雖然排序效率低,確實排序入門很重的算法,由於冒泡排序的思路是最簡單最容易理解的排序算法了。微信

2、冒泡排序

一、定義: 冒泡排序是一種經過兩兩比較相鄰記錄的關鍵字,若是反序則交換,直到沒有反序的記錄爲止的交換排序。數據結構

二、實現思想: 經過比較兩兩相鄰記錄的關鍵字,將第一個記錄的關鍵字和第二個記錄的關鍵字進行比較,若是後面的比前面的小則交換,而後比較第二個和第三個,依次類推。比完一個循環,最大的那個已經放到了最後的位置,這樣就能夠對前面N-1個數再循環比較。測試

下面以一羣身高不等的學生爲例,以下圖所示:spa

  • 未排序的學生 翻譯

  • 已排序的學生code

  • 冒泡排序第一輪實現過程

3、冒泡排序的 Java 代碼實現

一、冒泡排序實現算法:cdn

BubbleSort.javablog

package BubbleSort;

/** * * 冒泡排序實現算法 * */
public class BubbleSort {

    public void bubble(Integer[] data){

        for(int i=0;i<data.length;i++){
            for(int j=0;j<data.length-1-i;j++){

                //若是後一個數小於前一個數,則兩個數互相交換位置
                if(data[j]>data[j+1]){
                    int tmp=data[j];
                    data[j]=data[j+1];
                    data[j+1]=tmp;
                }
            }
        }
    }
}

複製代碼

二、冒泡排序測試:

Test.java

package BubbleSort;

import java.util.Arrays;

/** * * 測試冒泡排序 * */
public class Test {

    public static void main(String[] args) {

        Integer[] list={149,138,165,197,176,113,127,114,110};

        //冒泡排序
        BubbleSort bs = new BubbleSort();
        bs.bubble(list);

        System.out.println("排序前的結果爲:" + Arrays.toString(list));
        System.out.print("排序後的結果爲:");

        for(int i=0;i<list.length;i++){
            System.out.print(list[i]+" ");
        }
    }
}

複製代碼

二、測試結果:

掃描二維碼關注微信公衆號,瞭解更多

相關文章
相關標籤/搜索