相关疑难解决方法(0)

快速算法实现以排序非常小的列表

这是我很久以前遇到的问题.我想我可能会问你的想法.假设我有一个非常小的数字列表(整数),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)
Run Code Online (Sandbox Code Playgroud)

我想我的问题更多地与实现有关,而不是算法的类型.

此时它变得有点依赖于硬件,所以让我们假设带有SSE3的Intel 64位处理器.

谢谢

sorting algorithm performance sorting-network

36
推荐指数
3
解决办法
3万
查看次数

std::sort 是否也针对少量项目进行了优化?

有一种算法可以在 7 次比较中对 5 个项目进行排序:设计一种有效的算法,可以在少于 8 次比较中对 5 个不同的键进行排序如果需要对 5 个项目调用该算法, 是否会std::sort()使用该算法?这个算法可以扩展到7个项目吗?在 C/C++ 中对 7 个整数进行排序最快的算法是什么?

c++ sorting algorithm

5
推荐指数
1
解决办法
2243
查看次数

标签 统计

algorithm ×2

sorting ×2

c++ ×1

performance ×1

sorting-network ×1