簡體   English   中英

這種反轉計數算法的實現有什么問題?

[英]What is wrong with the implementation of this inversion count algorithm?

我在www.hackerrank.com上提出了一個問題,而且我已經堅持了好幾天。

這是關於問題的聲明https://www.hackerrank.com/challenges/insertion-sort 基本上,我必須計算O(nlog(n))時間內給定數組在插入排序中發生了多少交換。

http://paste.ubuntu.com/12637144/這是我提交的代碼。 我使用合並排序並計算每個元素移位了多少次。 該代碼通過了網站一半以上的測試。 當它失敗時,它不會超時,也不會出現編譯錯誤或分段錯誤。

此外,當我獲得其中一個失敗的測試用例的輸入時(這是在站點http://paste.ubuntu.com/12637165/上輸入失敗的輸入),並使用我的代碼http:/的變體對其進行了測試。 /paste.ubuntu.com/12637127/實際上運行插入排序算法,對沿途的交換次數進行計數,並對照合並排序計數進行檢查,我通過了所有測試。 另外,我已經生成了數千個隨機測試用例,並且它們也都通過了此測試通過。

我認為這不是網站的問題,因為在對該問題的討論中,其他人似乎都通過了測試,沒有任何問題或投訴。 所以也許我誤解了這個問題,或者我只是在寫錯誤的算法和測試用例。 有沒有人有什么建議?

如果n可以達到100000,則否。 的反轉數可以是〜= n ^ 2/2,這不適合32位整數。 嘗試使用64位整數進行計數和mergeSort的返回值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM