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

临邑县住房和城乡建设局网站支付宝网页版登录入口

临邑县住房和城乡建设局网站,支付宝网页版登录入口,wordpress调用文章列表图片为背景,设计策划网站目录 1.思路1.1大堆的建立方法1.2排序的方法 2.代码实现以及测试代码 1.思路 如何将一个堆进行排序,并变成升序?首先,如果要完成升序,那我们可以建立一个大堆,因为大堆可以选出一个最大的值放在堆的最上面&#xff0c…

目录

  • 1.思路
    • 1.1大堆的建立方法
    • 1.2排序的方法
  • 2.代码实现以及测试代码

1.思路

如何将一个堆进行排序,并变成升序?首先,如果要完成升序,那我们可以建立一个大堆,因为大堆可以选出一个最大的值放在堆的最上面,我们就可以根据每次选出一个最大值来进行排序的做法.

1.1大堆的建立方法

值得一说的是,如果给定一个数组,让进行建堆排序操作的话,建立大堆可以有两种不同的过程,两种过程对应了不同的时间复杂度
首先第一种:向上调整法

for (int i = 1; i < n; i++)
{AdjustUp(a, i);
}

在这里插入图片描述
如图所示,时间复杂度为:O(N*logN)
另一种方法:向下调整法:
与向上调整法不同的是,向下调整法开始的第一个节点是最后一个非叶子节点
for (int i = (n - 1 - 1) / 2; i >= 0; i–)
{
AdjustDown(a, n, i);
}
在这里插入图片描述
如图所示,时间复杂度为:O(N),

1.2排序的方法

利用大堆的特点,每次选出一个最大值并与最后一个值进行交换,换到最后得到的数组就为排序好的数组.

int end = n - 1;
while (end > 0)
{Swap(&a[0], &a[end]);AdjustDown(a, end, 0);end--;
}

2.代码实现以及测试代码

实现代码:

void Swap(int* p1, int* p2)
{int tmp = *p1;*p1 = *p2;*p2 = tmp;
}
void AdjustUp(int* a, int child)
{int parent = (child - 1) / 2;while (child > 0){if (a[parent] < a[child]){Swap(&a[parent], &a[child]);child = parent;parent = (child - 1) / 2;}else{break;}}}
void AdjustDown(int* a, int size, int parent)
{int child = parent * 2 + 1;while (child < size){if (child + 1 < size && a[child + 1] > a[child]){++child;}if (a[parent] < a[child]){Swap(&a[parent], &a[child]);parent = child;child = parent * 2 + 1;}else{break;}}}void HeapSort(int* a, int n)
{for (int i = (n - 1 - 1) / 2; i >= 0; i--){AdjustDown(a, n, i);}//for (int i = 1; i < n; i++)//{//	AdjustUp(a, i);//}int end = n - 1;while (end > 0){Swap(&a[0], &a[end]);AdjustDown(a, end, 0);end--;}}

测试代码:


int main()
{ int a[] = { 4,6,2,1,5,8,2,9 };int size = sizeof(a) / sizeof(int);HeapSort(a, size);for (int i = 0; i < size; i++){printf("%d ", a[i]);}return 0;
}

运行截图:
在这里插入图片描述

结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!

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

相关文章:

  • 网站开发综合实训心得wordpress动态默认参数
  • 上海建网站手机app做直播 网站的上市公司
  • 个人网站报价每一个网站都要后台吗
  • 盐城网站建设公司个人网站建设的国外文献综述
  • 电子书网站怎么做网站设计思路
  • 网站模板教程网站的运营费用吗
  • 网站建设单位有哪些方面wordpress跳转下载页面
  • 怎么做网站弹出公告如何做公司自己的网站首页
  • 专业网站建设排名辽宁建设工程信息网官网查询
  • 站长源码网站建设树状图
  • 免费试用平台网站源码千万不要嫁给程序员
  • 网站建设方案应该怎么做网易免费企业邮箱怎么注册
  • 苏州做网站平台天津网络营销
  • 自己怎样免费建设网站外贸网站制作时间及费用
  • 南通专业制作网站新郑网站建设公司
  • 关于网站建设的调研报告网站建设教程开源代码下载
  • 商城网站服务器了解wordpress
  • 做网站销售好做吗seo网站上线前分析
  • 网站开发实现页面的跳转网站建设视频百度网盘下载
  • 医疗机构网站以患者做宣传贵州省城乡与建设厅网站
  • 手表网站建设规划书wordpress用户前端化
  • 深圳网站建设 龙华信科代写文案的软件
  • 自己怎么做搬家网站有没有专门做花鸟鱼虫的网站
  • 青岛企业建站网站管理维护怎么做
  • 做网站怎么赚钱的重庆市工程建设标准信息网
  • 网站怎么做备案哪些网站是做零售的
  • 国际网站群建设方案南通网站关键词推广
  • 南京建站公司网站网站建设一般都需要什么资质
  • 织梦网站安装视频网站首页改版方案
  • 惠州市网站建设企业学习网站建设建议调查问卷