算法数据结构C++实现5 - Bucket Sort 吊桶排序

2015-11-21 01:49:30 · 作者: · 浏览: 13
吊桶排序的排序速度很快,平均是O(n),能达到这么快的速度其中一个原因是它假设了输入值为范围是[0, 1)的小数。
Introduction to Algorithm这本书里面章8.4的算法,首先把原数组按照一定规律对照到每个吊桶(Bucket)里面,然后对每个Bucket排序,最后把这些Bucket串起来,就成为一个有序序列了。
下面是C++完整代码:
?
#include  
#include  
#include  
#include  
#include  
  
using namespace std;  
  
template  
void bucketSort(typename C& ca)     //难点  
{  
    int n = ca.size();  
    int k = 0, i = 0;  
    vector > vld(n);       //难点  
  
    for(i=0; i caTemp;  
    for(i = 0; i
class Print { public: Print(){} void inline operator()(const T& x) const{cout< ld(a, a+10); //排序前 for_each(ld.begin(), ld.end(), Print()); cout<

?

?
总结:
C++是个非常好的开发工具,但是如果不熟悉的话,还是挺耗时间的。 编程的时候一定要注意每一个细节,不然就可能被这些细节耽误很多时间。思维一定要保持高度逻辑性,否则就很难debug好。所谓差之毫厘谬以千里,有时候会被一个小;号,和&号搞的代码出错的,所以要非常注意。