在思想方面讨论堆排序(考研自用,按非递减方式排序)

这篇具有很好参考价值的文章主要介绍了在思想方面讨论堆排序(考研自用,按非递减方式排序)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在思想方面讨论堆排序(考研自用,按非递减方式排序)

 


目录
1.什么是排序
2.关于堆排序的几个问题
3.问题求解
首先:排序的定义

在思想方面讨论堆排序(考研自用,按非递减方式排序)

 

 


拿冒泡排序(递增)来讲,在一个给定的数组序列中,若A[i+1]<A[i],则将其两个的数值进行交换,排好序的序列应该是递增的,类似于[1,2,3,4,5...];

所以排序是在数组中进行的,物理内存的数值发生了永久性的变化(和初始状态不相同了).

其次,知道什么是排序之后再了解什么是堆排序

在思想方面讨论堆排序(考研自用,按非递减方式排序)

 


很明显,这里提出了两个问题,1 怎么构成初始堆,2 如何调整输出后的堆

第一个问题比较好理解,但是第二个问题为什么要输出堆顶元素,输出的堆顶元素用来做什么了?

这个问题涉及到本题目的迷惑我挺长时间的解题步骤:到底使用大根堆还是小根堆?

为什么不能用大/小根堆?

通常来讲,排序不涉及到直接输出的问题,或者是说要输出排好序的数组序列

所以第二个问题就迎刃而解了,不需要输出堆顶元素,我排好序之后整个数组序列就是题目想要的答案.除非题目要求我输出堆顶元素.

最后,针对这道题的解法
要求是按照非递减的方式进行排序,由于给定的数值没有相同的,因此非递减的含义就变成了递增.

如果使用小根堆的方式:

在思想方面讨论堆排序(考研自用,按非递减方式排序)

 

最后的数组排序将是逆序

但是使用大根堆的方式:

 

在思想方面讨论堆排序(考研自用,按非递减方式排序)

 

 

调整后的数组排序将是递增的.

因此建立的初始堆即是:

在思想方面讨论堆排序(考研自用,按非递减方式排序)

 

相应的就能解释为什么第二题第一次交换之后的关键码是 45 90 26 61 72 11 4 97(第一次交换指的是堆顶元素和堆底元素的交换=>相当于输出/删除堆顶元素 然后剩下的元素重新调整),所以重新建立的大根堆应该是:

            90

    72            26

61   45        11    4

 

 

90 72 26 61 45 11 4

个人愚见,欢迎各位朋友斧正.文章来源地址https://www.toymoban.com/news/detail-746206.html

到了这里,关于在思想方面讨论堆排序(考研自用,按非递减方式排序)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【排序算法】 归并排序详解!分治思想!

    🎥 屿小夏 : 个人主页 🔥个人专栏 : 算法—排序篇 🌄 莫道桑榆晚,为霞尚满天! ​ 什么是归并?通过归并排序就能让数据有序?分治法是怎么在归并排序上应用的?本文将对归并排序进行细致入微的讲解,庖丁解牛般让你彻底明白归并排序! 归并排序(MERGE-SORT)是建

    2024年02月08日
    浏览(43)
  • 【排序算法】 计数排序(非比较排序)详解!了解哈希思想!

    🎥 屿小夏 : 个人主页 🔥个人专栏 : 算法—排序篇 🌄 莫道桑榆晚,为霞尚满天! 什么是计数排序?计数排序的思想是什么?它是如何实现的? 本文会对计数排序进行由浅入深的探究,让你彻底掌握计数排序! ​ 计数排序又称为鸽巢原理,是对哈希直接定址法的变形应

    2024年02月06日
    浏览(39)
  • 【排序算法】 归并排序详解!深入理解!思想+实现!

    🎥 屿小夏 : 个人主页 🔥个人专栏 : 算法—排序篇 🌄 莫道桑榆晚,为霞尚满天! ​ 什么是归并?通过归并排序就能让数据有序?分治法是怎么在归并排序上应用的?本文将对归并排序进行细致入微的讲解,庖丁解牛般让你彻底明白归并排序! 归并排序(MERGE-SORT)是建

    2024年02月08日
    浏览(42)
  • 【排序算法】 归并排序详解!深入理解!思想+源码实现!

    🎥 屿小夏 : 个人主页 🔥个人专栏 : 算法—排序篇 🌄 莫道桑榆晚,为霞尚满天! ​ 什么是归并?通过归并排序就能让数据有序?分治法是怎么在归并排序上应用的?本文将对归并排序进行细致入微的讲解,庖丁解牛般让你彻底明白归并排序! 归并排序(MERGE-SORT)是建

    2024年02月06日
    浏览(43)
  • 【快速排序算法思想及其应用】

    本文主要介绍Java中快速排序(Quick Sort)算法的基本原理、实现方式以及使用场景。快速排序是一种高效的排序算法,通过选取一个基准元素并将待排序序列划分为小于基准元素和大于基准元素的两部分来实现排序。本文将深入剖析快速排序的思想及其在实际应用中的价值。

    2024年02月07日
    浏览(45)
  • 快速排序思想

    快速排序是指通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序。整个排序过程可以递归进行,以此达到整个数据变成有序序列。 代码实现:

    2024年02月07日
    浏览(39)
  • 【计数排序算法思想及其应用】

    本文主要介绍Java中计数排序(Counting Sort)算法的基本原理、实现方式以及使用场景。计数排序是一种线性时间复杂度的非比较排序算法,通过计数数组来统计输入数据中每个元素出现的次数,然后按照数组下标顺序输出排序后的结果。本文将深入剖析计数排序的思想及其在

    2024年02月07日
    浏览(53)
  • 快速排序的基本思想(图文详解)

    快速排序算法通过多次比较和交换来实现排序,其排序流程如下: (1)首先设定一个分界值,通过该分界值将数组分成左右两部分。 (2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于分界值,而右边部分中各

    2024年02月01日
    浏览(34)
  • 考研算法33天:基数排序 【基数排序】

    我们前一天写了一道桶排序,今天开始看它的进化版:基数排序,为啥会有这个算法呢?因为我们桶排序有一部是需要统计每个数字出现的次数因此需要开一个相对大的数组 但是就像快速排序这道题,它的数值到了10的9次方了,咋映射呢?总不可能再开这么大一个数组吧?会

    2024年02月11日
    浏览(45)
  • 考研算法29天:希尔排序 【希尔排序】

    算法介绍 希尔排序 = 等差数列 + 普通版插入排序 循环数组 第一次每n/2为间隔分为4组,然后组内排序。 第二次每n/4为间隔分为2组。然后组内排序 第三次n/8为间隔分为一组。然后组内排序。 组内排序用插入排序来排序。 注:也可以第一次为n/3为间隔,第二次为n/3^2,,第三次

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包