栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > 百科 > 教育

桶排序时间复杂度

教育 更新时间: 发布时间: 百科归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

桶排序时间复杂度

桶排序时间复杂度:O(N+C),其中C=N*(logN-logM)。桶排序是一个排序算法,工作的原理是将数组分到有限数量的桶子里,每个桶子再使用别的排序算法或以递归方式继续使用桶排序进行排序。

桶排序的平均时间复杂度为线性的O(N+C),其中C=N*(logN-logM)。如果相对于同样的N,桶数量M越大,其效率越高,最好的时间复杂度达到O(N)。当然桶排序的空间复杂度为O(N+M),如果输入数据非常庞大,而桶的数量也非常多,则空间代价无疑是昂贵的。此外,桶排序是稳定的。

桶排序的方法

桶排序算法要求,数据的长度必须完全一样,程序过程要产生长度相同的数据,其方法为:Data=rand()/10000+10000。

每次进行下一次的扫描顺序是按照上次扫描的结果来的,所以设计上提供相同的两个桶数据结构。前一个保存每一次扫描的结果供下次调用,另外一个临时拷贝前一次扫描的结果提供给前一个调用。

在桶排序算法的代码中,假设输入是含n个元素的数组A,且每个元素满足0≤ A[i]<1。另外还需要一个辅助数组B[O..n-1]来存放链表实现的桶,并假设可以用某种机制来维护这些表。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/ask/523612.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号