可以這樣

來源: 說了就走 2009-07-25 11:34:08 [] [博客] [舊帖] [給我悄悄話] 本文已被閱讀: 次 (366 bytes)
回答: 回複:回複:一道程序題東瓜太郎2009-07-23 14:02:55
把你的算法改變一下:

紀錄開始的位置為初始為止,最終位置為結束位置。
從A1開始,依次向右檢查。
如果該數和初始位置不對應,跳過該數。
否則:紀錄該數位置。從它開始,依次把數放到結束位置,並且把結束位置的數置換出來。檢查結束位置是否為紀錄,如果是則跳過(一個循環完成)

隻要初始位置和結束位置計算時間是常數,這個算法就應該是線性時間,同時占用常數內存

所有跟帖: 

計算時間是否常數(或平均是常數), 不是很明顯。 -亂彈- 給 亂彈 發送悄悄話 亂彈 的博客首頁 (0 bytes) () 07/27/2009 postreply 21:25:41

似乎很明顯 -說了就走- 給 說了就走 發送悄悄話 說了就走 的博客首頁 (183 bytes) () 07/28/2009 postreply 16:07:49

主要問題是隻能用const memory -康MM- 給 康MM 發送悄悄話 康MM 的博客首頁 (88 bytes) () 07/28/2009 postreply 16:37:05

似乎沒有那麽複雜 -說了就走- 給 說了就走 發送悄悄話 說了就走 的博客首頁 (803 bytes) () 07/29/2009 postreply 21:45:44

回複:似乎沒有那麽複雜 -康MM- 給 康MM 發送悄悄話 康MM 的博客首頁 (104 bytes) () 07/30/2009 postreply 07:33:36

我覺得我解釋不清楚 -說了就走- 給 說了就走 發送悄悄話 說了就走 的博客首頁 (1593 bytes) () 07/30/2009 postreply 11:56:00

主要是難以判斷一個位置有沒有排好。 -亂彈- 給 亂彈 發送悄悄話 亂彈 的博客首頁 (355 bytes) () 07/30/2009 postreply 17:30:25

你可以run一下這個程序,對任何n都適用 -說了就走- 給 說了就走 發送悄悄話 說了就走 的博客首頁 (357 bytes) () 07/30/2009 postreply 20:47:50

你一直在假設a[k]=k。沒有這個假設你的算法不成立 -康MM- 給 康MM 發送悄悄話 康MM 的博客首頁 (0 bytes) () 07/31/2009 postreply 07:14:51

那麽請問你的假設是什麽? -說了就走- 給 說了就走 發送悄悄話 說了就走 的博客首頁 (216 bytes) () 07/31/2009 postreply 18:16:46

還是問冬瓜太郎吧,他說可以就可以 -康MM- 給 康MM 發送悄悄話 康MM 的博客首頁 (177 bytes) () 08/02/2009 postreply 10:25:52

你說得很有道理 -說了就走- 給 說了就走 發送悄悄話 說了就走 的博客首頁 (2675 bytes) () 08/02/2009 postreply 13:50:02

我還是覺得我們在說兩件不同的事 -康MM- 給 康MM 發送悄悄話 康MM 的博客首頁 (0 bytes) () 08/06/2009 postreply 17:49:24

請您先登陸,再發跟帖!

發現Adblock插件

如要繼續瀏覽
請支持本站 請務必在本站關閉/移除任何Adblock

關閉Adblock後 請點擊

請參考如何關閉Adblock/Adblock plus

安裝Adblock plus用戶請點擊瀏覽器圖標
選擇“Disable on www.wenxuecity.com”

安裝Adblock用戶請點擊圖標
選擇“don't run on pages on this domain”