a208: 真 ● 泡沫排序法
標籤 : sort
通過比率 : 99人/118人 ( 84% ) [非即時]
評分方式:
Tolerant

最近更新 : 2019-11-16 09:45

內容

        我們都知道在本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
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (20%): 1.0s , <1K
公開 測資點#1 (20%): 1.0s , <1K
公開 測資點#2 (20%): 1.0s , <1M
公開 測資點#3 (20%): 1.0s , <1M
公開 測資點#4 (20%): 1.0s , <1M
提示 :

其實嚴格遞增序列根本就不需要排序嘛!

 

p.s.不會寫的去罵吳樹棋,別罵我

標籤:
sort
出處:
FDCS $8^{th}$ 進階教學 [管理者:
30819Kenny (Kenny)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」