读书人

C++list数组中百万级数据的排序有关问

发布时间: 2012-08-10 12:19:33 作者: rapoo

C++list数组中百万级数据的排序问题
在一个list数组中,有百万级的数据量甚至更多,怎么在稳定的情况下提高排序的效率?用哪种排序方法比较好?

[解决办法]
只有特殊情况可以优化,普适的是不会优于O(nlogn)的。
[解决办法]
mapreduce做归并排序。
[解决办法]

探讨

mapreduce做归并排序。

[解决办法]
std::sort 快速实现的。直接用就行了
[解决办法]
Intel IPP (Intel® Integrated Performance Primitives )

SortAscend, SortDescend
Sorts all elements of a vector.

Syntax
IppStatus ippsSortAscend_8u_I(Ipp8u* pSrcDst, int len);
...........
IppStatus ippsSortDescend_64f_I(Ipp64f* pSrcDst, int len);


..................

SortRadixAscend, SortRadixDescend
Sorts all elements of a vector using radix sorting algorithm.

Syntax
IppStatus ippsSortRadixAscend_8u_I(Ipp8u* pSrcDst, Ipp8u* pTmp, Ipp32s len);
....
IppStatus ippsSortRadixDescend_64f_I(Ipp64f* pSrcDst, Ipp64f* pTmp, Ipp32s len);



intel mkl (Intel® Math Kernel Library)
之 LAPACK
Sorts numbers in increasing or decreasing order.(Quick Sort)
Syntax
call slasrt( id, n, d, info )

[解决办法]
用list自带的sort排序快多了,list里面是链表,交换地址比交换数据快得多。sort的话还有赋值
[解决办法]
探讨

std::sort 快速实现的。直接用就行了

读书人网 >C++

热点推荐