2012-06-10 43 views
0

com論壇,找到數組中最接近的兩個元素之間的距離

我想在C++下面編譯這個算法。請有任何想法嗎?

// Find the distance between the two closest elements in an array of numbers. 
// Minimum Distance 
// dmin = infinity; 
// for i = (i to n - 2) do 
// for j = i + 1 to n - 1 do 
// temp = A[i] - A[j] 
// if temp < dmin; 
// dmin = temp; 
// return dmin; 
+0

這不是一個家庭作業解決網站。你有沒有遇到一個真正的問題,而不是「我什麼都不知道」? – phant0m

回答

1

我建議你不要使用算法(O(n^2)),而是數字進行排序,然後做一個線性掃描(O(nlogn))。

0

是的,phant0m是正確的,但排序算法本身會使用循環。

排序算法通常由它們的效率來判斷。在這種情況下,效率是指算法的效率,因爲輸入的大小變大,通常基於要排序的元素的數量。大多數使用的算法具有O(n^2)或O(n * log(n))的算法效率。 (http://www.cprogramming.com/tutorial/computersciencetheory/sortcomp.html)

除非數組已經有點排序了,否則你以後需要排序的版本,或者你的數組真的很大,你可能會以及「咬緊牙關」並堅持原來的做法。

相關問題