冒泡排序 Javascript

| | | |

如何編寫 JavaScript 氣泡咒語

你有需要排序的值列表嗎?分類氣泡可能適合您。冒泡排序比較列表中的相鄰項目,如果它們的順序不正確,則交換它們的位置。

在本指南中,我們將討論什麼是氣泡以及它們是如何工作的。我們將了解如何在 JavaScript 中編寫冒泡排序,以便您可以快速開始使用這種類型。

讓我們開始吧!

什麼是 JavaScript 冒泡排序?

一種冒泡排序或“排序阻尼”是一種簡單的排序算法,它比較列表中的一對相鄰項目。如果一個元素不按順序排列,我們將這個元素與前一個元素交換。否則,該項目將保留在同一位置。

Tri Bubble 之所以得名,是因為它會滾動列表並將所有最重要的值“Äã”、“Äã”移到末尾。考慮這一點的另一種方法是,列表末尾的最大值“冒泡”。氣泡類型按升序和降序工作

有兩種氣泡類型:.. 常規和優化

常規氣泡類型可以進行所有可能的比較,如果一個數組被排序。如果沒有發生交換,則優化的氣泡類型會在迭代結束時停止運行。

冒泡排序 JavaScript 過程

我們將首先討論冒泡排序的工作原理,然後在 JavaScript 中實現一個。考慮以下元素列表:

9 3 2 11

開始我們的流派,我們將比較第一個和第二個數字。如果第一個數字大於第二個數字,我們交換元素。否則,元素保持在同一位置

9 更大比 3 使前兩個元素的位置交換:

3 < /td> 9 12 2

這個過程一直持續到列表中的所有項目都進行比較。

9 不超過 12,因此這些項目保持在同一個位置。12 大於 2,因此這些元素交換:

< table class = "wp-bloc en table-info table">
3 9 2 12

我們的列表開始看 清潔器。我們的算法重複了這個列表一次。它將繼續這樣做,直到我們訂購每件商品。在下一次迭代中,我們的程序進行以下比較:

  • 3 大於 9?不,什麼都沒有發生。
  • 9 大於 2?是的,所以項目交換。
  • 9 大於 12?不,什麼都沒有發生。

在這個迭代之後,我們的列表看起來像這樣:

< tr>
3 2 9 12 我們快到了。在下一次迭代中,我們交換前兩項,這給了我們一個完整的有序列表:

我們做到了!我們使用冒泡排序對列表進行了分類。現在是棘手的部分:。該算法在 JavaScript 中的開發工作

如何在 JavaScript 中編寫一個算法冒泡排序

我們可以編寫一個對 JavaScript 冒泡排序的算法。我們將創建兩種類型的冒泡:普通排序和優化

普通冒泡排序

讓我們從定義一個 JavaScript 函數 來執行我們的冒泡排序:

這個函數接受一個數字數組並使用冒泡排序算法進行排序。首先,該算法會創建一個 循環,它會遍歷列表中的每個元素

我們的代碼使用數組的length屬性來計算列表的長度,然後我們聲明另一個循環,這個循環對列表中的每一項進行比較

對於我們內部循環的每次迭代,我們的程序都會執行一個 if 語句。這個 JavaScript if 語句檢查是否左邊的數字a比較大於右邊的數字。在這種情況下,我們的程序交換數字。否則,什麼都不會發生。

排序後將數組返回給主程序。讓我們調用我們的函數並給出它是一個示例數組:

我們已經聲明 JavaSc 變量 ript 稱為 numbersToSort ,其中包含我們想要排序的數字。然後我們調用 sortItems () 方法 並採用該變量作為參數。這對我們的列表進行了排序。我們在瀏覽器的 JavaScript 控制台 中打印新的有序列表:。 [2, 3, 9, 11]

ORDERS of our list code 按升序排列。我們可以通過用“減號”替換“大於”值來訪問我們的“if”聲明來改變這種行為:

我們快完成了!讓我們通過實現帶有交換變量的排序氣泡來使我們的代碼更高效。

優化氣泡排序

優化氣泡引入了一個新變量排序。此變量跟踪是否進行了交換。如果沒有發生交換,則三停止

為了讓我們的類型泡沫更有效,我們將用一個while循環替換我們的外部for循環:

while 循環將一直執行,直到“swapped”為假。默認情況下,“錢包”的值為 true。在列表的每次迭代中,我們都將“已交換”的值設置為 false。如果發生交換,“已交換”的值返回 true

這使我們可以跟踪是否在一個迭代中進行了交換。如果沒有進行交換,則表示我們的列表已排序。在這種情況下,我們可以停止冒泡排序。

讓我們嘗試使用這個冒泡的排序:

p>

我們的代碼返回:. [2, 3, 9, 11] 列表已排序。此算法更高效,因為它不執行不必要的比較。只要列表已排序,算法停止工作。

結論

各種氣泡是對C排序的簡單方法比較列表中相鄰項的列表或交換它們,如果它們的順序不正確。

更有效的種類可用,例如插入排序或合併排序。這些類型更高級。氣泡類型通常是開始學習排序算法的最佳方式。

有關 JavaScript 編碼的更多信息,請閱讀我們的 如何學習 JavaScript 幫助.

我們希望本文能幫助您解決問題。 除了 冒泡排序 Javascript,查看其他與 insert 相關的主題。

想在 Python 中出類拔萃? 查看我們對 最佳 Python 在線課程 2022的評論。 如果您對數據科學感興趣,請查看如何學習 R 編程

順便說一句,此材料也有其他語言版本:



Chen Zelotti

Shanghai | 2022-12-01

也许有其他的答案?什么是冒泡排序 Javascript?到底是什么意思?. 我只希望不再出現

Jan OConnell

Vigrinia | 2022-12-01

谢谢你的解释! 我被冒泡排序 Javascript卡住了几个小时。了几个小时,最后终于完成了 🤗. 我只是不太確定這是最好的方法

Carlo Emmerson

Warsaw | 2022-12-01

谢谢你的解释! 我被冒泡排序 Javascript卡住了几个小时。了几个小时,最后终于完成了 🤗. 我只是不太確定這是最好的方法

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

Common xlabel/ylabel for matplotlib subplots

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

12 answers

NUMPYNUMPY

Flake8: Ignore specific warning for entire file

12 answers

NUMPYNUMPY

glob exclude pattern

12 answers

NUMPYNUMPY

How to avoid HTTP error 429 (Too Many Requests) python

12 answers

NUMPYNUMPY

Python CSV error: line contains NULL byte

12 answers

NUMPYNUMPY

csv.Error: iterator should return strings, not bytes

12 answers


Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

sin

How to specify multiple return types using type-hints

exp

Printing words vertically in Python

exp

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

cos

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically