因为每次重构成大根堆之后,根据大根堆的特性,每个节点的值一定大于左右孩子节点的值,所以很明显大根堆的根节点就是二叉树中值最大的值同时也就是数组中最大的值.所以重构成大根堆之后交换数组队头与队尾元素的操作就是在将最大的元素进行定位...,并且运行出来的结果也和我预期的一样,但是当我自己画图以后画到这张图的时候我就知道算法还是有BUG的,这个BUG就是每次构建大根堆的时候:我们的确能够在每次构建大根堆的时候将最大的元素挑选出来,但是,我们在挑选出当前最大的元素之后...相信经过我这样的讲解之后,大家一定能够更好的理解堆排序了.
复杂度分析:
理解完堆排序的基本思想之后,我们就需要来分析一下他的时间复杂度,空间复杂度....主要就是下面这几个步骤:
1.第一次遍历序列,找出序列中的最大值以及最小值,然后根据最大值MAX与最小值MIN创建一个MAX-MIN+1长度的数组.为什么创建这样长度的数组呢,因为只有创建了这样长度的数组...-桶排序
算法思想:
大家第一眼看到这个算法的名字时相信大家的反应应该和我是一样的,桶排序?