我發現選擇排序使用蠻力策略。不過,我認爲它使用貪婪策略。爲什麼選擇排序不貪心
爲什麼我認爲它使用貪婪:它在外循環和從i + 1到n-1從0到n-1。這真的很天真。它在每次迭代中選擇最小元素 - 它在本地選擇最佳元素。一切都喜歡貪婪,但事實並非如此。
你能解釋一下爲什麼我不這麼認爲嗎?關於這個問題的信息我還沒有在互聯網上找到。
我發現選擇排序使用蠻力策略。不過,我認爲它使用貪婪策略。爲什麼選擇排序不貪心
爲什麼我認爲它使用貪婪:它在外循環和從i + 1到n-1從0到n-1。這真的很天真。它在每次迭代中選擇最小元素 - 它在本地選擇最佳元素。一切都喜歡貪婪,但事實並非如此。
你能解釋一下爲什麼我不這麼認爲嗎?關於這個問題的信息我還沒有在互聯網上找到。
設A是intgers的列表,使得:A = [5,4,3,6,1,2,7]
貪婪算法將尋找最有前途的方向,因此:
所以使用這種方法的排序列表將導致排序作爲這樣的列表: [3,4,5,1,2,7]
貪婪和蠻力描述算法的不同性狀。
貪婪意味着,在每個步驟中的算法選擇一些選項,這是局部最好的。也就是說,它沒有前瞻性。
蠻力意味着該算法以一種簡單的方式查找選項,並考慮它們。例如。它可能會通過二進制搜索來搜索一個元素,並且它不再是蠻力。
所以算法可能既貪婪又蠻力。這些品質不是相互排斥的。
所以,它是兩個,不是嗎?貪婪和蠻力 –
@ S.Drumble1我會說是的,儘管這些定義並不是很正式。 –
甲選擇排序確實可以被描述爲一個貪婪算法,在某種意義上說,它:
碰巧,同樣的描述可以應用於大多數其他排序算法,以及—唯一真正的區別是子問題的選擇。例如:
事實上,從我的頭頂,我想不出任何實際的排序算法,不會在這個意義上貪婪的。 (Bogosort不是,但很難稱爲實用)。此外,將這些排序算法作爲貪婪優化問題來配製,這樣在比較排序算法時會在實踐中模糊實際上非常重要的細節。
因此,我認爲將特徵選擇排序或任何其他排序算法視爲貪婪在技術上是有效的,但實際上是無用的,因爲這樣的分類不提供真正有用的信息。
謝謝。所以貪婪應該停止,只要看起來目前的價值是最合適的?無論是否有更好的解決方案? –
究竟:),而蠻力是從所有可能的解決方案中選擇最好的 –