堆排序(Heapsort)
Heap property
堆数据结构是数组对象,它可以用近似完全二叉树进行表示。例如下面数组A,可以表示成a图的二叉树形式。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201008173309853.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob25nYmluZzEyMzQ=,size_16,color_FFFFFF,t_70#pic_center)
设一节点的索引为i,从上图可以看到,其父节点的索引和子节点的索引与该节点的索引有如下关系:
p a r e n t ( i ) = i / / 2 ( / / 表 示 取 整 ) parent(i) = i//2 \quad(// 表示取整)\\ parent(i)=i//2(//表示取整)
l e f t ( i ) = 2 i left(i) = 2i\\ left(i)