冒泡排序

冒泡排序(Bubble Sort):是一種計算機科學領域的較簡單的排序方法。是把一系列的數(shù)據(jù)按照一定的順序進行排列顯示(從小到大或從大到小) 它重復地走訪過要排序的數(shù)列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數(shù)列的工作是重復地進行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。這個算法的名字由來是因為越小的元素會經(jīng)由交換慢慢“浮”到數(shù)列的頂端。

例如,我們可以將數(shù)組 [5,4,3,2,1] 中的元素按照從小到大的順序排序,輸出:1,2,3,4,5

利用雙重for循環(huán)語句可以達到冒泡排序的方法


冒泡算法靜態(tài)演示


冒泡算法動態(tài)演示

思路分析:

1.一共需要的趟數(shù)我們用外層for循環(huán);5個數(shù)據(jù)我們一共需要走4趟;長度就是數(shù)組長度減去1 arr.length - 1

⒉.每一趟交換次數(shù)我們用里層for循環(huán);第一趟交換4次;第二趟交換3次;第三趟交換2次;第四趟交換1次;長度就是數(shù)組長度減去次數(shù)但是我們次數(shù)是從0次開始的;所以最終arr.length - i -1

3.交換2個變量就好了


代碼演示:

//?冒泡排序

<script>

????var?arr?=?[5,?2,?3,?4,?1];

????for?(var?i?=?0;?i?<=?arr.length?-?1;?i++)?{?//外層循環(huán)管趟數(shù)

????????for?(var?j?=?0;?j?<=?arr.length?-?i?-?1;?j++)?{?//?里面的循環(huán)管每一趟的交換次數(shù)

????????????//??內(nèi)部交換2個變量的值前一個和后面一個數(shù)組元素相比較

????????????if?(arr[j]?>?arr[j?+?1])?{? //更改if里面條件語句控制排序類型;這里是從大到小

// 交換其中的變量值

????????????????var?temp?=?arr[j];

????????????????arr[j]?=?arr[j?+?1];

????????????????arr[j?+?1]?=?temp;

????????????}

????????}

????}

????console.log(arr); // 打印輸出arr數(shù)組

</script>


此文若有出入,請指出!

此致,敬禮!

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 算法之冒泡排序 一:基本概念冒泡排序(Bubble Sort),又被稱為氣泡排序或泡沫排序;它是一種比較簡單的排序...
    墨小飛閱讀 481評論 0 2
  • 基本思想: 冒泡排序是一種交換排序,它的基本思想是:兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到?jīng)]有反序的記錄為...
    史史小子閱讀 713評論 0 0
  • 閱讀原文 冒泡排序是一個比較經(jīng)典和簡單的排序算法,今天我們從從算法本身,時間復雜度以及穩(wěn)定性方面來看看冒泡排序,這...
    gyl_coder閱讀 457評論 0 2
  • 原作者:濤聲依舊,微信公眾號“趣味編程”原博客鏈接:圖解冒泡排序 冒泡排序是一個比較經(jīng)典和簡單的排序算法,今天我們...
    駭客與畫家閱讀 1,083評論 0 1
  • 冒泡思想 在算法國內(nèi),相傳有一位大師,他不喜做官,在民間傳道受業(yè),弟子三千,人稱“克” 有一天,克帶著得意弟子...
    桃呀閱讀 433評論 0 0

友情鏈接更多精彩內(nèi)容