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

資訊專欄INFORMATION COLUMN

經典排序算法——冒泡排序

SHERlocked93 / 3573人閱讀

摘要:優(yōu)點實現(xiàn)簡單,比較穩(wěn)定。缺點時間復雜度較高。原理比較兩個相鄰的元素,將值大的元素交換至右端。思路依次比較相鄰的兩個數(shù),將小數(shù)放在前面,大數(shù)放在后面。重復第一趟步驟,直至全部排序完成。

優(yōu)點:實現(xiàn)簡單,比較穩(wěn)定。
缺點:時間復雜度較高。

原理:比較兩個相鄰的元素,將值大的元素交換至右端。

思路:依次比較相鄰的兩個數(shù),將小數(shù)放在前面,大數(shù)放在后面。即在第一趟:首先比較第1個和第2個數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個數(shù),將小數(shù)放前,大數(shù)放后。重復第一趟步驟,直至全部排序完成。

舉例說明:要排序數(shù)組:int[] arr={6,3,8,2,9,1};

第一趟排序:

    第一次排序:6和3比較,6大于3,交換位置: 3 6 8 2 9 1

    第二次排序:6和8比較,6小于8,不交換位置:3 6 8 2 9 1

    第三次排序:8和2比較,8大于2,交換位置: 3 6 2 8 9 1

    第四次排序:8和9比較,8小于9,不交換位置:3 6 2 8 9 1

    第五次排序:9和1比較:9大于1,交換位置: 3 6 2 8 1 9

    第一趟總共進行了5次比較, 排序結果: 3 6 2 8 1 9

第二趟排序:

    第一次排序:3和6比較,3小于6,不交換位置:3 6 2 8 1 9

    第二次排序:6和2比較,6大于2,交換位置: 3 2 6 8 1 9

    第三次排序:6和8比較,6大于8,不交換位置:3 2 6 8 1 9

    第四次排序:8和1比較,8大于1,交換位置: 3 2 6 1 8 9

    第二趟總共進行了4次比較, 排序結果: 3 2 6 1 8 9

第三趟排序:

    第一次排序:3和2比較,3大于2,交換位置: 2 3 6 1 8 9

    第二次排序:3和6比較,3小于6,不交換位置:2 3 6 1 8 9

    第三次排序:6和1比較,6大于1,交換位置: 2 3 1 6 8 9

    第二趟總共進行了3次比較, 排序結果: 2 3 1 6 8 9

第四趟排序:

    第一次排序:2和3比較,2小于3,不交換位置:2 3 1 6 8 9

    第二次排序:3和1比較,3大于1,交換位置: 2 1 3 6 8 9

    第二趟總共進行了2次比較, 排序結果: 2 1 3 6 8 9

第五趟排序:

    第一次排序:2和1比較,2大于1,交換位置: 1 2 3 6 8 9

    第二趟總共進行了1次比較, 排序結果: 1 2 3 6 8 9

最終結果:1 2 3 6 8 9

由此可見:
for(int i=0;i

for(int j=0;j

}

完整代碼實現(xiàn):`public class Jianzhi{

public static void bubbleSort(int[] list){
    if(list == null ){
        return ;
    }if(list.length == 1){
        return ;
    }else{
        for(int i = 0 ; i < list.length ; i++ ){
            for(int j = 0 ; j < list.length-1-i ; j++ ){
                if(list[j]>list[j+1]){
                   int t = list[j] ;
                    list[j] = list[j+1] ;
                    list[j+1] = t ;
                }
            }
        }
    }
}
public static void main(String[] args){
    int[] ss = {3,2,5,4,1,7,6,8};
    ss[0] = 3 ;
    ss[1] = 2 ;
    ss[2] = 5 ;
    bubbleSort(ss);
    for(int i : ss){
        System.out.println(i);
    }
}

}`

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

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

相關文章

  • JavaScript 數(shù)據(jù)結構與算法之美 - 十大經典排序算法匯總

    摘要:筆者寫的數(shù)據(jù)結構與算法之美系列用的語言是,旨在入門數(shù)據(jù)結構與算法和方便以后復習。這應該是目前較為簡單的十大經典排序算法的文章講解了吧。比如原本在的前面,而,排序之后,在的后面十大經典排序算法冒泡排序思想冒泡排序只會操作相鄰的兩個數(shù)據(jù)。 showImg(https://segmentfault.com/img/bVbvHet); 1. 前言 算法為王。想學好前端,先練好內功,內功不行,就...

    zsy888 評論0 收藏0
  • 十大經典排序算法的 JavaScript 實現(xiàn)

    摘要:計算機領域的都多少掌握一點算法知識,其中排序算法是數(shù)據(jù)結構與算法中最基本的算法之一。排序算法可以分為內部排序和外部排序,內部排序是數(shù)據(jù)記錄在內存中進行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。 計算機領域的都多少掌握一點算法知識,其中排序算法是《數(shù)據(jù)結構與算法》中最基本的算法之一。排序算法可以分為內部排序和外部排序,內部排序是數(shù)據(jù)記錄在內...

    philadelphia 評論0 收藏0
  • 學習經典算法—JavaScript篇(一)排序算法

    摘要:對每一對相鄰元素作同樣的工作,從開始第一對一直到結尾的最后一對,如此將最大的數(shù)放在后面。持續(xù)每次對元素重復上面的步驟,直到排序完成。排序步驟將第一待排序序列第一個元素看做一個有序序列,把第二個元素到最后一個元素當成是未排序序。 前端攻城獅——學習常用的排序算法 一、冒泡排序 優(yōu)點: 所有排序中最簡單的,易于理解; 缺點: 時間復雜度O(n^2),平均來說是最差的一種排序方式; 因為在...

    remcarpediem 評論0 收藏0
  • 學習經典算法—JavaScript篇(一)排序算法

    摘要:對每一對相鄰元素作同樣的工作,從開始第一對一直到結尾的最后一對,如此將最大的數(shù)放在后面。持續(xù)每次對元素重復上面的步驟,直到排序完成。排序步驟將第一待排序序列第一個元素看做一個有序序列,把第二個元素到最后一個元素當成是未排序序。 前端攻城獅——學習常用的排序算法 一、冒泡排序 優(yōu)點: 所有排序中最簡單的,易于理解; 缺點: 時間復雜度O(n^2),平均來說是最差的一種排序方式; 因為在...

    fireflow 評論0 收藏0

發(fā)表評論

0條評論

SHERlocked93

|高級講師

TA的文章

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