排序算法——堆排序 Heapsort
堆排序(Heapsort)是指利用堆进行排序的一种排序算法。堆是一种近似完全二叉树的结构,它的最大特点是对于最小堆,任何子节点的键值总是大于它的父节点;而对于最大堆,任何子节点的键值总是小于它的父节点。堆通常可用数组表示,如果数组第一个元素的下标设为0,那么父节点i的左子节点位置为(28i+1),父节点i的右子节点位置为(2*i+2),子节点i的父节点位置为floor((i-1)/2)。以最大堆为例,根据堆的定义,显然根节点的键值总是最大的。堆排序的算法描述如下(1)创建最大堆:即根据一系列输入
复制链接