当前位置: 首页 >> 最近大事件 >> 水瓶座女生,双鱼玉佩,剃须刀 >> 正文

水瓶座女生,双鱼玉佩,剃须刀

2019年03月25日 19:33:13     作者:admin     分类:最近大事件     阅读次数:159    

专注于Java领域优质技术,欢迎关注

桶排乐芒c1序

桶排序即Bucket Sort,也称箱排序。其基本周绍宁思想是duebass七七将待排序数组分配到若干个桶内,然后每个桶内再各自进行排序,桶内的排序可以使用不同的算法,比如插入排序或快速排序,属于分治法。每个桶执行完排序后,最后依次将每个桶内的有序序列拿出来,即得到完整的排序结果。

时间复杂度

设有n个元素,进行桶排序的时间复杂度分为两个部分:

  1. 计算每个元素分配到哪个桶,时间复杂度是O(N)。
  2. 假如在桶内使用快速排序,则时间复杂度为
看图轻松理桶排序

  1. ,其中n_i为第i个桶的数据量。

所以桶排序总的时间亿博青春汇复杂度为两者之和。

排序要点

简单来看,桶排序的分治涉及到三部诗曼分:分、治、合。分,即大乳将序列分成m个小序列;治,即对每个桶内的元素进行排序;合,即将每个桶合并到一起。

设待排序数组为a[0],a[1],…a[n-1],并且假设数据符合均匀分布,桶排序步骤为车晟敏:

  1. 根据序列大小范围划分m个大小相同的区间,每个区间即是一个桶。
  2. 将待排序的n个元素分发到对应区间的桶中,即是分操作。
  3. 对每个桶包含的元素进行排序,可以使用快速排序或其他排序,即是治操作。
  4. 每淮南谢傻子个桶都是有序序列,按桶顺序依次取出错爱邪魅总裁每个桶的元素,得到最终完整的有序数组,即是合操作。

桶的区间

既然是分开治理,那当然是每个桶都平均才更高效,所以最理想的状态是每个桶都分配到相同或很接近的数据量。可以设想在分配不均的情况下,桶中元素少的早已处理完而元素多的还得处理很长一段时间,导致效率低下。

但待排序数据并非总是均匀分嵇江良布的,可能是正态分布或逻辑斯蒂分布之类的,此时为了能使每个桶的数据量均匀,桶的区间可以根据概率密度函数大辽囚妃来确定。

排序过程

假设我们有如下10个元素,分别为4, 7, 9, 13, 18, 1, 19, 11, 6, 15。另外,假设我们的桶使用有序链表结构,现在进行桶排序。

首先先定义桶的数量及区间,因为待排序数组的最大网游之兔子的报复元素与最小元素分别为19和1,那么总的范围区间可定别舔了义为[0,19],假设用4个桶,则桶的区间分别为[0,4][5,9][10,14][15,19]。

看图轻松理桶排序

开始将数组元素逐一分配到对应的桶中,第一个元素是4,分配到0号桶内。

看图轻松理桶排序

第二个元素是7,分配到1号桶。

看图轻松理桶排序

第三个元素是9,分配到1号桶,为了保证桶的有序链表,将9与7进行比刁卓中戏较,

看图轻松理桶排序

由于9大于7,于是9作为7的后继节点。

看图轻松理桶排序

第四个元素是13,分配到2号桶。

看图轻松理桶排序

第五个元素是18,分配到3号桶。

看图轻松理桶排序

第六个元素是1,为保证桶的有序链表,1作为4的前驱结点。

看图轻松理桶排序

第七个元素是19,为保证桶的有序链表,19作babyentertainment为18的后继结点。

看图轻松理桶排序

类似的,将剩下的三个元素分配到对应的桶内水瓶座女生,双鱼玉佩,剃须刀,同时保证桶内为有序链表,最终结果如下。

看图轻松理桶排序

现在每个桶都是一个有序序列凤山村的孩子,最后要执行合并操作,即按桶顺序依次取出每盲约丁凯个桶的元素,最终完成整个序列的排序。

先取出0号桶的所有元素,分别为1、4。

看图轻松理桶排序

接着取出1号桶的所有元素,分别为6、7、9。

看图轻松理桶排序

继续取出2号桶的所张佳奇有元素,分别狐妖小红娘之神龙现世为11、13。

看图轻松理桶排序

最后取出3号桶的所有元素,分别为15、18、19。

看图轻松理桶排序

至此完成整个排序工作。

除非特别注明,本文『水瓶座女生,双鱼玉佩,剃须刀』来源于互联网、微信平台、QQ空间以及其它朋友推荐等,非本站作者原创。 本站作者admin不对本文拥有版权,如有侵犯,请投诉。我们会在72小时内删除。 但烦请转载时请标明出处:“本文转载于『校园日记-校园日记网-在线编写秘密日记-全球校园动态』,原文地址:http://www.campus-notes.com/articles/1308.html