###### tags: `實習題目` `大一程設` `東華大學` `東華大學資管系` `基本程式概念` `資管經驗分享` # 泡沫排序 - Bubble Sort 請寫一個程式,最一開始讓使用者可以輸入要幾個數字,並利用**Bubble Sort**排序法將這些數字**由小排到大**。 <font size="4">**What is Bubble Sort?**</font> 假設我們的陣列依序值是 <font size="2">**2 1 5 4 3**</font>,Bubble sort會依序兩兩值做比較,當左邊的值大於右邊的值時,就會對調兩值的位置。 一開始 **[<span style="color:red;">0</span>]** ~ **[<span style="color:red;">1</span>]** 先做比較,因為**2 >1**因此把 **[<span style="color:red;">0</span>]** 跟 **[<span style="color:red;">1</span>]** 的值對調 :point_right: <font size="2">**1 2 5 4 3**</font> 接著 **[<span style="color:red;">1</span>]** ~ **[<span style="color:red;">2</span>]** 做比較,因為 **2 < 5** 因此 **[<span style="color:red;">1</span>]** 跟 **[<span style="color:red;">2</span>]** 的值不需要對調 :point_right: <font size="2">**1 2 5 4 3**</font> **[<span style="color:red;">2</span>]** ~ **[<span style="color:red;">3</span>]** 做比較,因為 **5 > 4** 因此 **[<span style="color:red;">2</span>]** 跟 **[<span style="color:red;">3</span>]** 的值需要對調 :point_right: <font size="2">**1 2 4 5 3**</font> **[<span style="color:red;">3</span>]** ~ **[<span style="color:red;">4</span>]** 做比較,因為 **5 > 3** 因此 **[<span style="color:red;">3</span>]** 跟 **[<span style="color:red;">4</span>]** 的值需要對調 :point_right: <font size="2">**1 2 4 3 5**</font> 做完第一輪後,我們會發現最後一個陣列 **[<span style="color:red;">4</span>]** 的值一定是最大的,因此在接下來的排序跟前面一樣,只是我們可以省略對最後一個值的排序,僅需要排 **[<span style="color:red;">0</span>]** ~ **[<span style="color:red;">3</span>]**, **[<span style="color:red;">3</span>]** 排完可省略,接著 **[<span style="color:red;">0</span>]** ~ **[<span style="color:red;">2</span>]**, **[<span style="color:red;">2</span>]** 排完可省略 ,最後 **[<span style="color:red;">0</span>]** ~ **[<span style="color:red;">1</span>]**。 ## Constraint * 請設計一個一維陣列來儲存你的這些數字 * 並請符合 Bubble Sort 的規則 * 數列最多輸入10個數字 --- **Sample Input1:** ``` 5 100 2001 12 4 19 ``` **Sample Output1:** ``` 4 12 19 100 2001 ``` --- **Sample Input2:** ``` 10 10 9 8 7 6 5 4 3 2 1 ``` **Sample Output2:** ``` 1 2 3 4 5 6 7 8 9 10 ```