2013年1月11日

堆排序 c/c++实现

摘要: #include <iostream>using namespace std;void Swap(int & left_data, int & right_data){ int auxiliary = left_data; left_data = right_data; right_data = auxiliary;}//----------------------------------------------------------------------------------// 小顶堆// 从i开始,到其父节点,父节点的父节点...,依次检查、调整以符合“ 阅读全文

posted @ 2013-01-11 16:58 zhuyf87 阅读(4375) 评论(0) 推荐(0) 编辑

堆与堆排序

摘要: 原文地址:http://blog.csdn.net/morewindows/article/details/6709644堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。下图展示一个最小堆:由 阅读全文

posted @ 2013-01-11 15:46 zhuyf87 阅读(275) 评论(0) 推荐(0) 编辑

导航