优点:时间复杂度低O(n+m),n为待排元素个数,m为桶的个数。
缺点:当n很大的时候,需要很多的桶来进行分,那么空间复杂度就会特别大,会占用大量的空间,如果数据跨度特别大的时候,不建议使用桶排序。
桶排序是一种排序算法,典型 的用空间换取时间就是将所有的N进行分配,将他们分配到M个桶里面去,分配到M个桶里面之后,按找大小顺序进行每个桶排序。最后依次把桶里面的元素进行输出。就完成了排序。
int fn0(int n)
{
return 0;
}
int fn1(int n)
{
static int (*p[2])(int) = { fn0,fn1 };
return p[!!n](n - 1) + n;
}
void main()
{
cout << "n:" << fn1(100) << endl;