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

网站建设注意内容织梦可以放两个网站

网站建设注意内容,织梦可以放两个网站,北京模板建站哪家好,怎样做好网站建设设计含义 堆排序就是把数组的内容在心中建立为大根堆,然后每次循环把根顶和没交换过的根末进行调换,再次建立大根堆的过程 建树的几个公式 一个数组有n个元素 最后一个父亲节点是n/2-1; 假如父亲节点在数组的下标为a 那么左孩子节点在数组下标为2*a1,…

含义 

堆排序就是把数组的内容在心中建立为大根堆,然后每次循环把根顶和没交换过的根末进行调换,再次建立大根堆的过程

建树的几个公式

一个数组有n个元素

最后一个父亲节点是n/2-1;

假如父亲节点在数组的下标为a

那么左孩子节点在数组下标为2*a+1,右孩子节点在数组下标为2*a+2

大根堆在心里建树的要点

父亲节点必须大于孩子节点,孩子节点大小位置无影响

【注】数组界限问题,以及传参问题

核心代码

//其实没有树,只不过是我们在心里根据数组层次建树来构建大根堆调整数组的排列顺序
//注意我这里的len是数组的长度,注意一下长度和数组下标间的关系
void AdjustDown(int nums[],int pos,int len)
{int dad = pos;int son = 2*dad+1;//左孩子在数组下标while(son < len){if(son+1<len && nums[son]<nums[son+1]){son++;//挑选出左右孩子最大的,只需把son+1变为右孩子下标}if(nums[son]>nums[dad])//只能父亲大于孩子{swap(nums[son],nums[dad]);//交换数据dad =son;//把当前孩子作为父亲,重新循环son = 2*dad+1;}else{break;}}
}
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
//数组
int nums[]={3,87,2,93,78,56,61,38,12,40};
void init_rand(int nums[],int len)
{srand(time(NULL));for(int i=0;i<len;++i){nums[i]=rand()%100+1;//(1,100)}
}
//交换数据
void swap(int &a,int&b)
{int tmp = a;a=b;b=tmp;
}
void print(int nums[],int len)
{for(int i = 0;i<len ;i++ ){printf("%d ",nums[i]);}printf("\n");
}//其实没有树,只不过是我们在心里根据数组层次建树来构建大根堆调整数组的排列顺序
void AdjustDown(int nums[],int pos,int len)
{int dad = pos;int son = 2*dad+1;//左孩子在数组下标while(son < len){if(son+1<len && nums[son]<nums[son+1]){son++;//挑选出左右孩子最大的,只需把son+1变为右孩子下标}if(nums[son]>nums[dad])//只能父亲大于孩子{swap(nums[son],nums[dad]);//交换数据dad =son;//把当前孩子作为父亲,重新循环son = 2*dad+1;}else{break;}}
}//待排序数组,待排序数组的长度
void heap_sort(int nums[],int len)
{int i;//建立大根堆//从最后一个父亲元素开始for(i=len/2-1;i>=0;--i){//调整没个父亲节点为大根堆//数组,父亲节点所在数组的下标,数组长度AdjustDown(nums,i,len);}//建立大根堆之后,有序的数据是在我们内心中建的树,而不是数组,因此我们还需要把他修改为数组中swap(nums[0],nums[len-1]);//先交换树根和最后一个节点的数据(我这里的len代表长度)// print(nums,len);//接着再次进入建立大根堆,换数据的循环中,直到数组有序for(i=len-1;i>0;i--){AdjustDown(nums,0,i);//每次从父亲节点开始(这里的i代表长度)swap(nums[0],nums[i-1]);//每一次交换树根和(除去数组末尾已经换过的)末尾// print(nums,len);}}int main()
{int len = sizeof(nums)/sizeof(nums[0]);init_rand(nums,len);heap_sort(nums,len);print(nums,len);
}

后序补上解析

http://www.yayakq.cn/news/138562/

相关文章:

  • 网站收录原创文章阿里云网站备份
  • 微网站开发服务网站优化一年多少钱
  • 服装代销的网站源码服务器网站怎么用
  • 网站中图片怎么做的网页设计与制作教程电子版pdf
  • 北京城建亚泰建设集团有限公司网站首页新闻大全
  • 网站根目录是什么意思制作网站需要注意什么
  • 移动app网站模板wordpress难不难
  • 网站栏目页 优化温州网站建设方案表
  • 怎么在网站中添加百度商桥国家免费职业培训平台
  • 南宁做企业网站培训班招生方案
  • 网站的关键词库怎么做的那么多品牌网站建设e小蝌蚪
  • 专题网站建设策划方案西安免费做网站多少钱
  • 可以做填字游戏的网站怎么查域名服务商
  • 怀柔重庆网站建设微信网站建设电话
  • 可以做驾校推广的网站2345网址导航官网
  • 深圳建设网站制作公司建设网站必须用dns
  • 成都企业网站建站wordpress内容构建器
  • 网站建设好多钱家具设计
  • 多媒体网站建设住房城乡建设网站查询
  • 摄影赚钱的网站云南建设厅网站资质查询
  • wordpress开发门户网站莱芜网页定制
  • 住房和城乡建设部网站科技项目网站开发都做些什么
  • 手机网站带后台源代码品牌推广营销方案
  • 开发网站如何选需要推广公司网站
  • 网站建设公司的市场开拓方案建筑工程网上叫什么
  • 网站备案注意事项鞍山网站制作推广
  • 服务器网站模板dw网站模板免费
  • 郑州建设网站费用买标准的网站建设
  • 云南省保山建设网站logo设计商标设计
  • 网站与维护wordpress 积分 文章