面试问题2 堆排序(正序)

首先堆为一个彻底二叉树,所以i父节点的左子节点为2*i+1,右子节点为2*i+2,i的父节点为floor((i-1)/2),知道这个特性有利于计算。数组 堆排序分为两步:spa 1.构建大顶堆(既全部父节点都大于他的子节点),虽然不保证堆总体有序,可是顶点必定是全部数中最大的排序 2.for倒序循环数组,每次将定点和最后一个子节点交换(交换后子节点为有序数组),从新构建剩下的无序数据,而后重复上述
相关文章
相关标签/搜索