成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java 數(shù)據(jù)結構與算法系列之冒泡排序

1treeS / 1708人閱讀

摘要:冒泡排序一種運行效率很低的排序算法,然而雖然排序效率低,確實排序入門很重的算法,因為冒泡排序的思路是最簡單最容易理解的排序算法了。二冒泡排序定義冒泡排序是一種通過兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到?jīng)]有反序的記錄為止的交換排序。

一、前言

相信大部分同學都已經(jīng)學過數(shù)據(jù)結構與算法這門課了,并且我們可能都會發(fā)現(xiàn)一個現(xiàn)象就是我們所學過的數(shù)據(jù)結構與算法類的書籍基本都是使用 C 語言來寫的,好像沒見過使用 Java 寫的數(shù)據(jù)結構與算法。

帶著這個好奇心,我去查了下資料,國內基本找不到使用 Java 寫的數(shù)據(jù)結構與算法書籍,有一本書叫《Java 數(shù)據(jù)結構與算法》,這本書的代碼是使用 Java 實現(xiàn)的,不過這本書是國內的學者翻譯國外的書籍寫出來的,個人感覺這本書對于初學者來說,還是比較難理解的。

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

二、冒泡排序

1、定義: 冒泡排序是一種通過兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到?jīng)]有反序的記錄為止的交換排序。

2、實現(xiàn)思想: 通過比較兩兩相鄰記錄的關鍵字,將第一個記錄的關鍵字和第二個記錄的關鍵字進行比較,如果后面的比前面的小則交換,然后比較第二個和第三個,依次類推。比完一個循環(huán),最大的那個已經(jīng)放到了最后的位置,這樣就可以對前面N-1個數(shù)再循環(huán)比較。

下面以一群身高不等的學生為例,如下圖所示:

未排序的學生

已排序的學生

冒泡排序第一輪實現(xiàn)過程

三、冒泡排序的 Java 代碼實現(xiàn)

1、冒泡排序實現(xiàn)算法:

BubbleSort.java

package BubbleSort;

/**
 *
 * 冒泡排序實現(xiàn)算法
 *
 */
public class BubbleSort {

    public void bubble(Integer[] data){

        for(int i=0;idata[j+1]){
                    int tmp=data[j];
                    data[j]=data[j+1];
                    data[j+1]=tmp;
                }
            }
        }
    }
}

2、冒泡排序測試:

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

2、測試結果:

關注微信公眾號compassblog,了解更多

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/69378.html

相關文章

  • JavaScript算法 ,Python算法,Go算法,java算法,C#算法系列插入排序

    摘要:常見的內部排序算法有插入排序希爾排序選擇排序冒泡排序歸并排序快速排序堆排序基數(shù)排序等。插入排序在實現(xiàn)上,通常采用排序即只需用到的額外空間的排序,因而在從后向前掃描過程中,需要反復把已排序元素逐步向后挪位,為最新元素提供插入空間。 常見的內部排序算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸并排序、快速排序、堆排序、基數(shù)排序等。用一張圖概括: showImg(https://segm...

    GeekQiaQia 評論0 收藏0
  • JavaScript算法 ,Python算法,Go算法,java算法,C#算法系列插入排序

    摘要:常見的內部排序算法有插入排序希爾排序選擇排序冒泡排序歸并排序快速排序堆排序基數(shù)排序等。插入排序在實現(xiàn)上,通常采用排序即只需用到的額外空間的排序,因而在從后向前掃描過程中,需要反復把已排序元素逐步向后挪位,為最新元素提供插入空間。 常見的內部排序算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸并排序、快速排序、堆排序、基數(shù)排序等。用一張圖概括: showImg(https://segm...

    cgspine 評論0 收藏0
  • JavaScript算法 ,Python算法,Go算法,java算法,C#算法系列插入排序

    摘要:常見的內部排序算法有插入排序希爾排序選擇排序冒泡排序歸并排序快速排序堆排序基數(shù)排序等。插入排序在實現(xiàn)上,通常采用排序即只需用到的額外空間的排序,因而在從后向前掃描過程中,需要反復把已排序元素逐步向后挪位,為最新元素提供插入空間。 常見的內部排序算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸并排序、快速排序、堆排序、基數(shù)排序等。用一張圖概括: showImg(https://segm...

    lufficc 評論0 收藏0
  • 輕松讀懂數(shù)據(jù)結構系列:早操排隊圖解冒泡排序

    摘要:二冒泡排序算法作為這一系列的第一部分,主要講解排序算法。直到隊列全部排好為止。到這里,我想你應該明白了冒泡排序的思想了。 一、說在前面 一直想寫一些簡單易懂的文章,因為平時看的很多的書籍或者文章都是看著很難受的感覺,當然,這并不是說書籍寫的不好,只是說對于一些沒有太多基礎或者基礎不是很好的來說,相對來說還是比較難以理解的。 這個系列主要是寫一些簡單易懂的數(shù)據(jù)結構與算法的文章,同時也是幫...

    Shisui 評論0 收藏0
  • JavaScript算法 ,Python算法,Go算法,java算法,系列歸并排序

    摘要:常見的內部排序算法有插入排序希爾排序選擇排序冒泡排序歸并排序快速排序堆排序基數(shù)排序等。用一張圖概括歸并排序英語,或,是創(chuàng)建在歸并操作上的一種有效的排序算法,效率為。 常見的內部排序算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸并排序、快速排序、堆排序、基數(shù)排序等。用一張圖概括: showImg(https://segmentfault.com/img/bVNwuO?w=966&h=...

    zhou_you 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<