搜索
查看: 22626|回复: 25
打印 上一主题 下一主题

【啊哈!算法】算法1:最快最简单的排序——桶排序

[复制链接]
楼主
发表于 2014-2-23 18:28:37 | 显示全部楼层
需要说明一点的是:我们目前学习的简化版桶排序算法其本质上还不能算是一个真正意义上的排序算法。为什么呢?例如遇到下面这个例子就没辙了。

  现在分别有5个人的名字和分数:huhu 5分、haha 3分、xixi 5分、hengheng 2分和gaoshou 8分。请按照分数从高到低,输出他们的名字。即应该输出gaoshou、huhu、xixi、haha、hengheng。发现问题了没有?如果使用我们刚才简化版的桶排序算法仅仅是把分数进行了排序。最终输出的也仅仅是分数,但没有对人本身进行排序。


这里概念错误了
事实上这里就是对分数进行排序,而不是对“人本身”进行排序
包含不包含名字对 算法 本身是没关系的
这里可以说是没有实现最初的要求,说“不是真正意义上的排序算法”就没必要了,建议删掉这些
沙发
发表于 2014-2-23 19:42:47 | 显示全部楼层
啊哈磊 发表于 2014-2-23 18:51
其实这里也没对分数进行真正的排序,因为输出的其实是序号

序号说的是?
板凳
发表于 2014-2-23 23:47:43 | 显示全部楼层
啊哈磊 发表于 2014-2-23 22:31
比如说huhu 5分、haha 3分、xixi 5分、hengheng 2分和gaoshou 8分
最后可以输出 8分 5分 5分 3分 2分, ...

那么我一开始理解的没错,麻烦再看看我上面的发言

或者说,我们要的是根据A的B属性进行排序,那么在算法层面上,是对B排序
具体要求输出A的哪个属性,这已经不是算法层面的问题了
地板
发表于 2014-2-23 23:52:57 | 显示全部楼层

这里把0写成NULL是不合适的
NULL这个宏被创造出来的原因是用来表示它是一个指针,而不是一个整数
这里的语义显然是个整数
5#
发表于 2014-2-24 00:44:56 | 显示全部楼层
超神级 发表于 2014-2-24 00:40
嗯!...            习惯了....

干脆把NULL忘掉
C++里不受待见,打的字还多
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表