当前位置: 首页 > news >正文

企业为什么要网站建设好姑娘高清免费观看

企业为什么要网站建设,好姑娘高清免费观看,房产经济人怎么做网站,中国建设工程招标网官方网站认识堆是从堆排序开始的 二叉堆是完全二叉树或者是近似完全二叉树,堆存储在数组中: 根结点下标为0时,下标为n的元素的子结点下标分别为2*n1,2*n2,其父结点下标为(n-1)/2 二叉堆的特性: 1、父结点的键值总是()任何一个子结点的键值 2、每个结点的左右子树都是二叉堆…认识堆是从堆排序开始的 二叉堆是完全二叉树或者是近似完全二叉树,堆存储在数组中: 根结点下标为0时,下标为n的元素的子结点下标分别为2*n1,2*n2,其父结点下标为(n-1)/2 二叉堆的特性: 1、父结点的键值总是()任何一个子结点的键值 2、每个结点的左右子树都是二叉堆 当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。 当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆 堆的操作方法如下定义 #ifndef _HEAP_CTL_H #define _HEAP_CTL_H#ifdef __cplusplus extern C { #endifvoid heapPprint(const char *info, int a[], int nLen); void swap(int *a, int *b);void buildMaxHeap(int *a, int hLen); void buildMinHeap(int *a, int hLen);void minHeapAddNumber(int *a, int *nLen, int newNum); void maxHeapAddNumber(int *a, int *nLen, int newNum); int minHeapDelNumber(int *a, int *nLen); int maxHeapDelNumber(int *a, int *nLen);void ascHeapSort(int *iArray,int nLen); void descHeapSort(int *iArray,int nLen);#ifdef __cplusplus } #endif #endif函数实现如下 #include stdio.h #include heapctl.hstatic void __pprint(int a[], int i, int nLen) {printf(();if (i nLen) {printf(%d, a[i]);__pprint(a, i*21, nLen);__pprint(a, i*22,nLen);}printf()); }/***brief 输出堆用于tree工具来图形化显示**params info 写在前面的话*params a 所要打印的数组*params nLen 数组的长度*/ void heapPprint(const char *info, int a[], int nLen) {if (info)printf(%s, info);printf(\n\\tree);__pprint(a, 0, nLen);printf(\n); }/***brief 交换两个数据**params a 用以交换的第一个数据*params b 用以交换的第二个数据*/ void swap(int *a, int *b) { #if 0//利用了辅助空间tmpint tmp *a;*a *b;*b tmp; #endif#if 0//相加可能溢出*a *b;*b *a - *b;*a - *b; #endif#if 1//异或运算A^B^BA*a ^ *b;*b ^ *a;*a ^ *b; #endif }/***brief 大顶堆调整**params A 数组A*params hLen*params 需要调整的节点i*/ void maxHeapAdjust(int *a,int i,int size) //调整堆 {int lchild2*i1; //i的左孩子节点序号 int rchild2*i2; //i的右孩子节点序号 int maxi; //临时变量 if(i size/2) //如果i是叶节点就不用进行调整 {if(lchildsize a[lchild]a[max]) {maxlchild;} if(rchildsize a[rchild]a[max]) {maxrchild;}if(max ! i) {swap(a[i], a[max]);maxHeapAdjust(a,max,size); //避免调整之后以max为父节点的子树不是堆 }} }/***brief 构建大顶堆**params a 数组a*params hLen 数组元素的个数*/ void buildMaxHeap(int *a, int hLen) {int i;//堆类似完全二叉树,nLen 为偶数://深度为2的节点数n2 nLen1 -1, n1 1, n0 nLen1;//nLen 为奇数, n2 nLen/2, n1 0, n0 nLen/21; //n0 n2 1//从非叶节点最大序号位置调整, 值为size/2 for(ihLen/2-1; i0; i--){maxHeapAdjust(a,i,hLen); } } /***brief 小顶堆调整**params A 数组A*params hLen*params 需要调整的节点i*/ void minHeapAdjust(int *a,int i,int size) //调整堆 {int lchild2*i1; //i的左孩子节点序号 int rchild2*i2; //i的右孩子节点序号 int maxi; //临时变量 if(lchildsize a[lchild]a[max]) {maxlchild;} if(rchildsize a[rchild]a[max]) {maxrchild;}if(max ! i) {swap(a[i], a[max]);minHeapAdjust(a, max, size); //避免调整之后以max为父节点的子树不是堆 } }/***brief 构建大顶堆**params a 数组a*params hLen 数组元素的个数*/ void buildMinHeap(int *a, int hLen) {int i;//堆类似完全二叉树,nLen 为偶数://深度为2的节点数n2 nLen1 -1, n1 1, n0 nLen1;//nLen 为奇数, n2 nLen/2, n1 0, n0 nLen/21; //n0 n2 1//从非叶节点最大序号位置调整, 值为size/2 for(ihLen/2-1; i0; i--){minHeapAdjust(a,i,hLen); } } /***brief 向小顶堆中插入数据**params a 要插入数据的数组*params nLen 数组元素长度指针, 插入后会自增*params newNum 插入的元素值**1、将插入的数据放入数组的末尾*2、根据与其父节点的大小来调整小顶堆*/ void minHeapAddNumber(int *a, int *nLen, int newNum) {a[*nLen] newNum; int j, i *nLen;for (j (i-1)/2;(j 0 i ! 0) a[i] a[j];i j, j (i-1)/2 )swap(a[i], a[j]);*nLen; }/***brief 向大顶堆中插入数据**params a 要插入数据的数组*params nLen 数组元素长度指针, 插入后会自增*params newNum 插入的元素值**1、将插入的数据放入数组的末尾*2、根据与其父节点的大小关系调整大顶堆*/ void maxHeapAddNumber(int *a, int *nLen, int newNum) {a[*nLen] newNum; int j, i *nLen;for (j (i-1)/2;(j 0 i ! 0) a[i] a[j];i j, j (i-1)/2 )swap(a[i], a[j]);*nLen; }/***brief 小顶堆的删除操作,堆中每次都只能删除第0个数据,**params a 要删除数据的数组*params nLen 数组元素长度指针, 插入后会自减**1、将插入的数据放入数组的末尾*2、根据与其父节点的大小关系调整大顶堆*/ int minHeapDelNumber(int *a, int *nLen) {int newLen *nLen - 1;swap(a[0], a[newLen]);minHeapAdjust(a, 0, newLen);*nLen newLen;return a[newLen]; }int maxHeapDelNumber(int *a, int *nLen) {int newLen *nLen - 1;swap(a[0], a[newLen]);maxHeapAdjust(a, 0, newLen);*nLen newLen;return a[newLen]; }/***brief 利用大顶堆进行升序排列**params a 所要排序的数组名称*params nLen 数组中元素的个数*/ void ascHeapSort(int *a,int nLen) {int i;buildMaxHeap(a,nLen);for(inLen-1; i1; i--){swap(a[0], a[i]); //交换堆顶和最后一个元素即每次将剩余元素中的最大者放到最后面 maxHeapAdjust(a, 0, i); //重新调整堆顶节点成为大顶堆} } /***brief 利用小顶堆进行降序排列**params a 所要排序的数组名称*params nLen 数组中元素的个数*/ void descHeapSort(int *iArray,int nLen) {int i;buildMinHeap(iArray, nLen);for(inLen-1; i1; i--) {swap(iArray[0], iArray[i]);minHeapAdjust(iArray, 0, i);} } 函数的实现方法与应用请自行参照注释 或以下文档 http://www.cnblogs.com/dolphin0520/archive/2011/10/06/2199741.html http://blog.csdn.net/morewindows/article/details/6709644/
http://www.zqtcl.cn/news/500039/

相关文章:

  • 站长统计芭乐鸭脖小猪电商平台哪个最好
  • 女与男爱做电影网站免费企业公司网站建设方案
  • 尚品本色木门网站是哪个公司做的大庆建设公司网站
  • 做网做网站建设的网站怎么用别人网站做模板
  • 电子商务网站购物车怎么做网站站点创建成功是什么意思
  • 如何做招聘网站的评估新浪微博可以做网站吗
  • 加强网站建设的制度wordpress如何清空
  • 轻松筹 的网站价格做网站建设意识形态
  • 有.net源码如何做网站湖南宣传片制作公司
  • dede网站模板怎么安装教程青岛需要做网站的公司
  • 静态双语企业网站后台源码北京网站关键词优化
  • 石家庄手机网站建设公司wordpress侧边栏显示子分类文字数
  • 公司网站客户案例个人做 网站2019
  • 个人网站怎么申请销售策划
  • 网站被黑 禁止js跳转企业为什么要建立集团
  • 建设网站的各种问题上海品牌女装排行榜前十名
  • seo优化搜索引擎网站优化推广网络关键词优化-乐之家网络科技商城网站备案能通过吗
  • 江门网站建设推广策划网站改版的宣传词
  • 网站建设三大部分国外购物平台网页界面设计
  • 公司商城网站建设方案wordpress旗舰
  • 京东云服务器怎么做网站企业宣传网站怎么做
  • 如何自学网站建设云南网爱我国防知识竞赛
  • 什么网站可以做投资设计接单
  • 网站内容批量替换桐乡网站制作
  • 怎么免费做网站教程制作xml网站地图文件
  • 广西智能网站建设哪家好网红商城
  • 关于建设网站的情况说明书wordpress 在线检测
  • 帝国cms 网站迁移错版怎样做心理咨询网站
  • 烟台建网站wordpress重写规则
  • 上海网站建设怎么赚钱平顶山网站建设服务公司