Via*_*iuk 5 sorting algorithm alphabetical
许多排序算法都基于数字的比较.如果我正确理解,当我们使用比较算法进行字母排序时,我们会比较char代码(它们的整数表示)并根据它们的值进行排序.(这就是为什么在ASCII表格中B有更大的代码A).但在这种比较中,我们只按第一个字母而不是整个字来排序.当我们使用时db query,ORDER BY我们正在对整个单词进行排序.(据我所知,它的原因是db后台机制,如索引等).我也听说过Radix sort(抱歉,但之前从未使用过它),因为我可以看到它可以帮助按字母排序(也许我错了).
什么算法最好用于整个单词的排序?
不正确:
Adam
Aaron
Antony
Run Code Online (Sandbox Code Playgroud)
正确:
Aaron
Adam
Antony
Run Code Online (Sandbox Code Playgroud)
我对整个工作流程的假设是否正确?
关于"仅比较第一个字母"的假设你不太正确.算法是 - 如果第一个字母相同,则比较下一个字母.接下来.接下来.直到你找到一些不同的字母,或者其中一个字符串耗尽.
另请注意,仅通过ASCII代码进行比较并不总是足够的.有时你需要做一个不区分大小写的比较,你认为A它等于a.有时您需要在您认为?等于的情况下进行重音不敏感的比较a.有时,你需要考虑言疯语狗屎哪里ß等于ss或更糟.
我的建议是 - 你的编程语言应该有一些比较字符串的机制.用那个.不要推出自己的.
之后,任何排序算法都将起作用.它们都使用一个简单的假设 - 您可以比较您排序的项目.它们是整数,字符串还是复杂对象是无关紧要的.只要你能拿出任何两个物体然后说"这个物体更大而且这个物体更小",你就可以去了.
(另请注意,你需要它保持一致.如果A == B和B == C,那么你也需要确保A ==℃.同样的,如果A <B和B <C,那么你必须在<C.等.)
| 归档时间: |
|
| 查看次数: |
16662 次 |
| 最近记录: |