我的算法教科書由羅伯特·塞奇威克和凱文·韋恩說這個for循環有3N數組訪問,和其他地方,我發現了相同的代碼爲這個循環上的一些幻燈片一類聲稱其5N。它看起來像4N,因爲[i]使用了兩次。爲什麼這個N3數組訪問?
這是什麼,爲什麼是它呢?
在算法第三for循環
// Distribute the records.
for (int i = 0; i < N; i++)
aux[count[a[i].key()]++] = a[i];
鏈接到塞奇威克的文章。 http://www.informit.com/articles/article.aspx?p=2180073
鏈接類幻燈片從阿勒格尼學院。 http://cs.allegheny.edu/sites/jwenskovitch/teaching/CMPSC250/docs/lectures/14%20String%20Sorts.pdf
鏈接過去的堆棧溢出。 What constitutes 'array access' in the context of algorithms?
任何體面的編譯器都將只爲'a [i]'產生一個訪問。 –
如果[]沒有副作用,[i]可以計算一次並使用兩次(1次訪問)。然後數+ aux。 –