我們都知道在本DJ上也有一題泡沫排序法,也就是給你泡沫排序法的演算規則,並要求你針對一串數字進行排序。雖然聽起來極度適合新手,但對進階班的老手而言,這種 $O(n^2)$ 的排序法根本就是小事一件,隨便開個內建 sort 就會過了(笑)。而身為一位幫初階教學出功課的進階教學,很明顯不會讓各位有這樣的漏洞可以鑽。
因此,以下敘述泡沫排序法的規則:假設有一長度 $n$ 的數列 $v_0 \sim v_{n-1}$ ,從 $v_0$ 開始每次比對 $v_x , v_{x+1}$ ,假如 $v_x > v_{x+1}$ 則交換兩數位置。比對到數列尾端時再重複一次以上操作,當全數列都不需再交換時即代表排序完成。
所以本題內容如下:第一行輸入一數 $n$ ,第二行輸入數列 $v_0 \sim v_{n-1}$ ,而你的工作就是輸出把數列排序完成需交換的次數。
本題為多筆測資輸入。
第一行輸入一數 $n$ ,且 $n \le 10^5$ 。
第二行輸入數列 $v_0 \sim v_{n-1}$ , 且 $v_0 \sim v_{n-1}$ 皆在 int 範圍內。
輸出把 $v_0 \sim v_{n-1}$ 以泡沫排序法排序完成需交換的次數。
10 33950591 1105250847 -1839191377 -2075509481 -222132008 -244962736 2004536576 1780387266 -1844252081 895871651
21
其實嚴格遞增序列根本就不需要排序嘛!
p.s.不會寫的去罵吳樹棋,別罵我
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |