排序算法_堆排序
摘要:
一、什么是堆 堆可以视为一棵完全的二叉树,完全二叉树的一个“优秀”的性质是,除了最底层之外,每一层都是满的,这使得堆可以利用数组来表示,每一个结点对应数组中的一个元素. 数组与堆之间的关系: 父节点i的左子节点在位置 (2*i+1);父节点i的右子节点在位置 (2*i+2);子节点i的父节点在位置 [i/2];二、分类 最大堆:子结点的键值或索引总是小于它的父节点。 最小堆:子结点的键值或索引总是大于它的父节点。 三、算法描述堆排序就是把堆顶的最大数取出。将剩余的堆继续调整为最大堆。再次将堆顶的最大数取出,直到剩余数只有一个时结束。四、性能描述 数据结... 阅读全文
posted @ 2013-01-16 19:00 OnRoad_ 阅读(573) 评论(0) 推荐(0) 编辑