有效地排序3字节无符号数

时间:2014-11-16 06:33:03

标签: sorting assembly x86-16

在8086中,如何有效地对3字节无符号数进行排序?

我目前的解决方案:

  • 比较高16位
  • 如果它们相等,则比较低8位
  • 根据结果交换

2 个答案:

答案 0 :(得分:2)

不要使用基于比较的算法。使用基于计数的计数。对于24位整数,您可以在三次存储桶排序中对数字进行排序,每次排序为8位。

https://en.wikipedia.org/wiki/Bucket_sort

选择8位的桶大小。这是您的CPU架构的自然选择。

如果元素的数量非常高并且数组尚未进行部分排序,则存储分类算法通常会超过基于比较的排序算法。

答案 1 :(得分:0)

我希望24位数字存储在双字位置。我的建议是比较前8位,如果相等,则比较后16位 如果您不提供更多信息和代码示例,那么询问效率是没有用的。