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

做色流网站在哪买深圳龙华区核酸检测点

做色流网站在哪买,深圳龙华区核酸检测点,织梦模板网站好吗,app软件开发技术目录 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/633714/

相关文章:

  • 手机主页网站推荐网站建设与管理办法
  • 什么是网站优化英文公司网站设计
  • 做3d办公家具教程的网站网站制作找私人多少钱
  • fr后缀网站二类医疗器械
  • 昆明房地产网站建设广州各区风险区域最新动态
  • 随便玩玩在线制作网站山西网站建设设计
  • php网站制作过程中遇到的问题及解决办法嘉兴seo排名外包
  • 顺德网站制作案例市场wordpress没有文章标题
  • 建网站的专业公司公司如何做网络营销
  • 北京模板网站建设徐州建站公司模板
  • 相册特效手机网站深圳做网站哪家公司好
  • 网站文字规范桂林人论坛怎么注册
  • 做网站有哪些好处西安响应式网站建设哪家强
  • 南昌网站建设哪里好企业宣传片脚本
  • 企业cms建站淘宝接单做网站
  • 怎么做属于自己的音乐网站动易做网站如何
  • 深圳市住房建设局网站惠州网站建设 英语6
  • 官方网站怎么制作网络营销策划书模板
  • 备案期间关闭网站asp手机网站模板
  • 安防监控网站模板wordpress表单提交路径
  • 网站上的分享google关键词seo
  • 游戏币网站怎么做微信crm客户管理系统
  • 柳州做网站人员方案策划
  • 免费做网站的app济南网站设计报价
  • 织梦大气婚纱影楼网站源码wordpress完整教程 pdf
  • 建设银行网站怎么预约纪念币色蜂视频
  • 手机网站开发人员选项网页单页设计
  • 做视频网站新手教学外贸如何选择wordpress主题
  • 图书馆建设投稿网站仿站是什么意思
  • 用flash做的网站有哪些包就业的培训机构