我发现选择排序使用蛮力策略。不过,我认为它使用贪婪策略。为什么选择排序不贪心
为什么我认为它使用贪婪:它在外循环和从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不是,但很难称为实用)。此外,将这些排序算法作为贪婪优化问题来配制,这样在比较排序算法时会在实践中模糊实际上非常重要的细节。
因此,我认为将特征选择排序或任何其他排序算法视为贪婪在技术上是有效的,但实际上是无用的,因为这样的分类不提供真正有用的信息。
谢谢。所以贪婪应该停止,只要看起来目前的价值是最合适的?无论是否有更好的解决方案? –
究竟:),而蛮力是从所有可能的解决方案中选择最好的 –