【发布时间】:2011-02-14 11:30:28
【问题描述】:
这是我很久以前遇到的问题。 我想我可以问问你的想法。 假设我有非常小的数字(整数)列表,4 或 8 个元素,需要快速排序。 最好的方法/算法是什么?
我的方法是使用 max/min 函数(10 个函数对 4 个数字进行排序,没有分支,iirc)。
// s(i,j) == max(i,j), min(i,j)
i,j = s(i,j)
k,l = s(k,l)
i,k = s(i,k) // i on top
j,l = s(j,l) // l on bottom
j,k = s(j,k)
我想我的问题更多地与实现有关,而不是算法类型。
此时它变得有点依赖于硬件,所以让我们假设带有 SSE3 的 Intel 64 位处理器。
谢谢
【问题讨论】:
-
我问了基本相同的问题,但使用了更具体的上下文(C 实现,6 个整数的数组)并使用循环计数寄存器来评估性能。你可以在这里看到结果:stackoverflow.com/questions/2786899/…
标签: algorithm performance sorting sorting-network