堆排序算法的基本操作是优秀

在日常学习、工作或生活中,大家总少不了接触作文或者范文吧,通过文章可以把我们那些零零散散的思想,聚集在一块。范文书写有哪些要求呢?我们怎样才能写好一篇范文呢?下面我给大家整理了一些优秀范文,希望能够帮助到大家,我们一起来看一看吧。

堆排序算法的基本操作是篇一

我们通常所说的堆是指二叉堆,二叉堆又称完全二叉树或者叫近似完全二叉树。二叉堆又分为最大堆和最小堆。

堆排序(heapsort)是指利用堆这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。数组可以根据索引直接获取元素,时间复杂度为o(1),也就是常量,因此对于取值效率极高。

最大堆的特性如下:

父结点的键值总是大于或者等于任何一个子节点的键值 每个结点的左子树和右子树都是一个最大堆

最小堆的特性如下:

父结点的键值总是小于或者等于任何一个子节点的键值 每个结点的左子树和右子树都是一个最小堆

1.最大堆的算法思想是:

先将初始的r[0…n-1]建立成最大堆,此时是无序堆,而堆顶是最大元素

再将堆顶r[0]和无序区的最后一个记录r[n-1]交换,由此得到新的无序区r[0…n-2]和有序区r[n-1],且满足r[0…n-2].keys ≤ r[n-1].key

由于交换后,前r[0…n-2]可能不满足最大堆的性质,因此再调整前r[0…n-2]为最大堆,直到只有r[0]最后一个元素才调整完成。

最大堆排序完成后,其实是升序序列,每次调整堆都是要得到最大的一个元素,然后与当前堆的最后一个元素交换,因此最后所得到的序列是升序序列。

2.最小堆的算法思想是:

先将初始的r[0…n-1]建立成最小堆,此时是无序堆,而堆顶元素是最小的元素

再将堆顶r[0]与无序区的最后一个r[n-1]交换,由此得到新的无序堆r[0…n-2]和有序堆r[n-1],且满足r[0…n-2].keys >= r[n-1].key

由于交换后,前r[0…n-2]可能不满足最小堆的性质,因此再调整前r[0…n-2]为最小堆,直到只有r[0]最后一个元素才调整完成

最小堆排序完成后,其实是降序序列,每次调整堆都是要得到最小的一个元素,然后与当前无序堆的最后一个元素交换,所以所得到的序列是降序的。

提示:堆排序的过程,其实就是不断地扩大有序区,然后不断地缩小无序区,直到只有有序区的过程。

因为算法比较抽象,这里直接通过举个小例子来说明堆排序的过程是如何的`。下面我们用这个无序序列采用最大堆的进行堆排序,所得到的序列就是升序序列(asc)。

无序序列:89,-7,999,-89,7,0,-888,7,-7

第一步:初始化建成最大堆:

第二步:将堆顶最大元素999与无序区的最后一个元素交换,使999成为有序区。交换后,-7成为堆顶,由于-7并不是无序区中最大的元素,因此需要调整无序区,使无序区中最大值89成为堆顶,所以-7与89交换。交换后导致89的右子树不满足最大堆的性质,因此要对右子树调整成最大堆,所以-7要与0交换,如下图:

从图中看到,当-7成89交换后,堆顶是最大元素了,但是-7的左孩子是0,右孩子是-888,由于-7<0,导致-7这个结点不满足堆的性质,因此需要调整它。所以,0与-7交换。

然后不断重复着第二步的过程,直到全部成为有序区。

最后:所得到的是升序序列

堆排序的时间,主要由建立初始堆和反复调整堆这两部分的时间开销构成.由于堆排序是不稳定的,它得扭到的时间复杂度会根据实际情况较大,因此只能取平均时间复杂度。

平均时间复杂度为:o( n * log2(n) )

堆排序耗时的操作有:初始堆 + 反复调整堆,时间复杂度如下:

1.初始建堆:每个父节点会和左右子节点进行最多2次比较和1次交换,所以复杂度跟父节点个数有关。根据2x <= n(x为n个元素可以折半的次数,也就是父节点个数),得出x = log2n。即o ( log2n )

2.反复调整堆:由于初始化堆过程中,会记录数组比较结果,所以堆排序对原序列的数组顺序并不敏感,最好情况和最坏情况差不多。需要抽取 n-1 次堆顶元素,每次取堆顶元素都需要重建堆(o(重建堆) < o(初始堆))。所以小于 o(n-1) * o(log2n)

由于初始化堆需要比较的次数较多,因此,堆排序比较适合于数据量非常大的场合(百万数据或更多)。由于高效的快速排序是基于递归实现的,所以在数据量非常大时会发生堆栈溢出错误。

s("content_relate");

【java堆排序的算法思想的分析】相关文章:

1.

权重随机算法的java实现

2.

java中shuffle算法的使用

3.

java常见的排序算法的代码

4.

java常用的7大排序算法

5.

java算法实现排列组合的方法介绍

6.

java数据结构和算法笔记

7.

java方法重写的方法分析

8.

java的应用及前景分析

猜你感兴趣
堆排序算法的基本操作是优秀

堆排序算法的基本操作是优秀

在日常学习、工作或生活中,大家总少不了接触作文或者范文吧,通过文章可以把我们那些零零散散的思想,聚集在一块。范文书写有哪些要求呢?我们怎样才能写好一篇范文呢?下面我给大家整理了一些优秀范文,希望能够帮助到大家,我们一起来看一看吧。堆排序算法...

其他范文 2024-06-24
2024年日常单词500个优秀

2024年日常单词500个优秀

每个人都曾试图在平淡的学习、工作和生活中写一篇文章。写作是培养人的观察、联想、想象、思维和记忆的重要手段。相信许多人会觉得范文很难写?以下是小编为大家收集的优秀范文,欢迎大家分享阅读。日常单词500个篇一 1 the2 be3 of4 an...

其他范文 2024-06-24
最新韩国金浦工业高中优质

最新韩国金浦工业高中优质

每个人都曾试图在平淡的学习、工作和生活中写一篇文章。写作是培养人的观察、联想、想象、思维和记忆的重要手段。范文怎么写才能发挥它最大的作用呢?以下是我为大家搜集的优质范文,仅供参考,一起来看看吧韩国金浦工业高中篇一 韩国金浦大学韩国,1994...

其他范文 2024-06-24
2024年学校企业交流座谈会精选

2024年学校企业交流座谈会精选

在日常学习、工作或生活中,大家总少不了接触作文或者范文吧,通过文章可以把我们那些零零散散的思想,聚集在一块。相信许多人会觉得范文很难写?这里我整理了一些优秀的范文,希望对大家有所帮助,下面我们就来了解一下吧。学校企业交流座谈会篇一学校_企...

其他范文 2024-06-24
新时代好少年事迹800字通用

新时代好少年事迹800字通用

在日常学习、工作或生活中,大家总少不了接触作文或者范文吧,通过文章可以把我们那些零零散散的思想,聚集在一块。那么我们该如何写一篇较为完美的范文呢?下面是小编帮大家整理的优质范文,仅供参考,大家一起来看看吧。新时代好少年事迹800字篇一【篇...

其他范文 2024-06-24
the ideal teacher 阅读理解翻译 teach your child to wonder阅读理解通用

the ideal teacher 阅读理解翻译 teach your child to wonder阅读理解通用

无论是身处学校还是步入社会,大家都尝试过写作吧,借助写作也可以提高我们的语言组织能力。范文怎么写才能发挥它最大的作用呢?以下是小编为大家收集的优秀范文,欢迎大家分享阅读。the ideal teacher 阅读理解翻译 teach your...

其他范文 2024-06-24
大学工学专业介绍宝石及材料工艺学概论 宝石及材料工程学优秀

大学工学专业介绍宝石及材料工艺学概论 宝石及材料工程学优秀

范文为教学中作为模范的文章,也常常用来指写作的模板。常常用于文秘写作的参考,也可以作为演讲材料编写前的参考。范文书写有哪些要求呢?我们怎样才能写好一篇范文呢?下面我给大家整理了一些优秀范文,希望能够帮助到大家,我们一起来看一看吧。大学工学专...

其他范文 2024-06-24
四川大学较好的专业排名优质

四川大学较好的专业排名优质

每个人都曾试图在平淡的学习、工作和生活中写一篇文章。写作是培养人的观察、联想、想象、思维和记忆的重要手段。写范文的时候需要注意什么呢?有哪些格式需要注意呢?下面我给大家整理了一些优秀范文,希望能够帮助到大家,我们一起来看一看吧。四川大学较好...

其他范文 2024-06-24
汽车追尾责任怎么判定优秀

汽车追尾责任怎么判定优秀

无论是身处学校还是步入社会,大家都尝试过写作吧,借助写作也可以提高我们的语言组织能力。那么我们该如何写一篇较为完美的范文呢?下面是小编为大家收集的优秀范文,供大家参考借鉴,希望可以帮助到有需要的朋友。汽车追尾责任怎么判定篇一 汽车追尾是交通...

其他范文 2024-06-24
三级网络技术考试模拟试题和答案解析 三级网络技术考试大纲通用

三级网络技术考试模拟试题和答案解析 三级网络技术考试大纲通用

每个人都曾试图在平淡的学习、工作和生活中写一篇文章。写作是培养人的观察、联想、想象、思维和记忆的重要手段。那么我们该如何写一篇较为完美的范文呢?下面是小编帮大家整理的优质范文,仅供参考,大家一起来看看吧。三级网络技术考试模拟试题和答案解析...

其他范文 2024-06-24
小学四年级防雷电,防溺水主题班会教案及反思精选

小学四年级防雷电,防溺水主题班会教案及反思精选

作为一位不辞辛劳的人民教师,常常要根据教学需要编写教案,教案有利于教学水平的提高,有助于教研活动的开展。既然教案这么重要,那到底该怎么写一篇优质的教案呢?下面是我给大家整理的教案范文,欢迎大家阅读分享借鉴,希望对大家能够有所帮助。小学四年级...

其他范文 2024-06-24
税务师考试机考界面优秀

税务师考试机考界面优秀

在日常的学习、工作、生活中,肯定对各类范文都很熟悉吧。那么我们该如何写一篇较为完美的范文呢?以下是我为大家搜集的优质范文,仅供参考,一起来看看吧税务师考试机考界面篇一 注册税务师考试改革后,除了名称改为税务师,其中重要的一个变化是考试形式发...

其他范文 2024-06-24
二次酒后驾驶怎么处罚 第三次酒后驾驶怎么处罚通用

二次酒后驾驶怎么处罚 第三次酒后驾驶怎么处罚通用

范文为教学中作为模范的文章,也常常用来指写作的模板。常常用于文秘写作的参考,也可以作为演讲材料编写前的参考。范文怎么写才能发挥它最大的作用呢?下面是小编帮大家整理的优质范文,仅供参考,大家一起来看看吧。二次酒后驾驶怎么处罚 第三次酒后驾驶怎...

其他范文 2024-06-24
差异性怎么读 阅读差异分析通用

差异性怎么读 阅读差异分析通用

无论是身处学校还是步入社会,大家都尝试过写作吧,借助写作也可以提高我们的语言组织能力。大家想知道怎么样才能写一篇比较优质的范文吗?下面是小编帮大家整理的优质范文,仅供参考,大家一起来看看吧。差异性怎么读 阅读差异分析篇一 what come...

其他范文 2024-06-24
新交规副驾驶不系安全带的处罚制度规定模板

新交规副驾驶不系安全带的处罚制度规定模板

在日常学习、工作或生活中,大家总少不了接触作文或者范文吧,通过文章可以把我们那些零零散散的思想,聚集在一块。范文怎么写才能发挥它最大的作用呢?下面是小编为大家收集的优秀范文,供大家参考借鉴,希望可以帮助到有需要的朋友。新交规副驾驶不系安全带...

其他范文 2024-06-24
2024年代词作主语举例 用代词做主语造句优质

2024年代词作主语举例 用代词做主语造句优质

每个人都曾试图在平淡的学习、工作和生活中写一篇文章。写作是培养人的观察、联想、想象、思维和记忆的重要手段。那么我们该如何写一篇较为完美的范文呢?这里我整理了一些优秀的范文,希望对大家有所帮助,下面我们就来了解一下吧。代词作主语举例 用代词做...

其他范文 2024-06-24
2024年空挡滑行的利弊模板

2024年空挡滑行的利弊模板

在日常的学习、工作、生活中,肯定对各类范文都很熟悉吧。范文怎么写才能发挥它最大的作用呢?以下是我为大家搜集的优质范文,仅供参考,一起来看看吧空挡滑行的利弊篇一 车主们之所以谈“分”色变,皆因每个记分周期内的分值只有12分,若分值被扣完,驾驶...

其他范文 2024-06-24
圣诞节送苹果好不好精选

圣诞节送苹果好不好精选

每个人都曾试图在平淡的学习、工作和生活中写一篇文章。写作是培养人的观察、联想、想象、思维和记忆的重要手段。范文怎么写才能发挥它最大的作用呢?接下来小编就给大家介绍一下优秀的范文该怎么写,我们一起来看一看吧。圣诞节送苹果好不好篇一圣诞节送苹...

其他范文 2024-06-24
汽车追尾事故责任划分实用

汽车追尾事故责任划分实用

在日常的学习、工作、生活中,肯定对各类范文都很熟悉吧。范文书写有哪些要求呢?我们怎样才能写好一篇范文呢?下面我给大家整理了一些优秀范文,希望能够帮助到大家,我们一起来看一看吧。汽车追尾事故责任划分篇一 车辆追尾事故,主要是由于前后车距离太小...

其他范文 2024-06-24
四级考试翻译题技巧汇总

四级考试翻译题技巧汇总

在日常学习、工作或生活中,大家总少不了接触作文或者范文吧,通过文章可以把我们那些零零散散的思想,聚集在一块。范文怎么写才能发挥它最大的作用呢?下面我给大家整理了一些优秀范文,希望能够帮助到大家,我们一起来看一看吧。四级考试翻译题技巧篇一 英...

其他范文 2024-06-24