算法是什么意思?

如果排序算法被称为"不稳定",这意味着对于排名相同的任何项目,绑定成员的顺序不保证与该集合的连续排序保持相同.对于"稳定"排序,绑定的条目在排序时总是以相同的顺序结束.

对于应用程序的示例,快速排序算法不稳定.这对于按优先级排序操作(如果两个操作具有相同的优先级,您不太可能关心首先执行绑定的哪些元素)这样的工作正常.

另一方面,稳定的排序算法对于诸如在线游戏的排行榜之类的东西是有益的.如果您使用不稳定排序,按点排序(例如),那么在网页上查看排序结果的用户可能会在页面刷新时遇到不同的结果,并且诸如分页结果之类的操作将无法正常运行.


稳定的排序保留相同项目的顺序.通过将行索引附加到键,可以使任何排序稳定.不稳定的排序,例如堆排序和快速排序,例如本身没有这个属性,但是它们被使用是因为它们比稳定排序更快更容易编码.据我所知,没有其他理由可以使用不稳定的排序.


还是举个例子,贪心算法最经典的例子,给钱问题。
比如中国的货币,只看元,有1元2元5元10元20、50、100

如果我要16元,可以拿16个1元,8个2元,但是怎么最少呢?
如果用贪心算,就是我每一次拿那张可能拿的最大的。
比如16,我第一次拿20拿不起,拿10元,OK,剩下6元,再拿个5元,剩下1元
也就是3张 10、5、1。

每次拿能拿的最大的,就是贪心。

但是一定注意,贪心得到的并不是最优解,也就是说用贪心不一定是拿的最少的张数
贪心只能得到一个比较好的解,而且贪心算法很好想得到。
再注意,为什么我们的钱可以用贪心呢?因为我们国家的钱的大小设计,正好可以使得贪心算法算出来的是最优解(一般是个国家的钱币都应该这么设计)。如果设计成别的样子情况就不同了
比如某国的钱币分为 1元3元4元
如果要拿6元钱 怎么拿?贪心的话 先拿4 再拿两个1 一共3张钱
实际最优呢? 两张3元就够了

具体算法啊什么的 看看书 我只是简单介绍了一下

我要回帖

更多关于 简述什么是算法 的文章

 

随机推荐