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

建设网站的模板下载seo变现培训

建设网站的模板下载,seo变现培训,重庆建设银行网站,网站建设存在的困难问题在heap堆中,大根堆是一种特殊的堆,它满足下列性质:对于任意一个非叶子节点i,其左右子节点的值均小于等于它本身的值。 在大根堆中,堆顶元素永远是值最大的元素,所以将堆顶元素不断取出来,就相当…

在heap堆中,大根堆是一种特殊的堆,它满足下列性质:对于任意一个非叶子节点i,其左右子节点的值均小于等于它本身的值。

在大根堆中,堆顶元素永远是值最大的元素,所以将堆顶元素不断取出来,就相当于对数组进行了从大到小的排序操作。

相比较于其他排序算法,使用大根堆进行数组排序的优点在于:

1:时间复杂度稳定为O(nlogn),空间复杂度仅为O(1),并且算法实现简洁、易于理解。

2:由于大根堆的特殊性质,堆排序还具有良好的局部性和稳定性,能够保持元素在排序前后的相对位置关系,不会改变具有相同值的元素之间的顺序。

下面用图片来梳理我们的思路


                                        代码注解

首先我们先创建一个数组:

1: 首先我们将数组中的值建立成大根堆

2:首尾换位,向下调整成为循环

 我们将数组中的值建立成大根堆的Adjustup函数的实现

Adjustup函数的实现的空间复杂度(3条消息) 堆的向下调整与向上调整的时间复杂度_biter down的博客-CSDN博客

我们将数组中的值建立成大根堆的Adjustup函数的实现

Adjustdown函数的实现的空间复杂度(3条消息) 堆的向下调整与向上调整的时间复杂度_biter down的博客-CSDN博客

 


                                   源码提供参考:

#include<stdio.h>
void Swap(int* p1, int* p2) {
    int t = *p1;
    *p1 = *p2;
    *p2 = t;
}

void AdjustDown(int* a, int size) {
    int parent = 0;
    //将leftchild作为最大的孩子
    int child = parent * 2 + 1;
    while (child < size)
    {
        //当leftchild的值小于rightchlid时,child的值应该为较大值的右孩子
        if (child + 1 < size && a[child + 1] > a[child])
        {
            child++;
        }
        Swap(&a[child], a[parent]);
        parent = child;
        child = child * 2 + 1;
    }
}

void AdjustUp(int* a, int child)
{
    int parent = (child - 1) / 2;
    while ( child != 0 && a[child] > a[parent])
    {
        Swap(&a[child], a[parent]);
        child  = parent;
        parent = (parent - 1) / 2;
    }
}

//排升序,建大根堆
void HeapSort(int* a,int n)
{
    //将数组中的值建立成大根堆
    for (int i = 1; i < n; ++i)
    {
        AdjustUp(a, i);
    }
    //将大根堆数组的元素升序
    for(int i=n;i>0;i--)
    {
        Swap(&a[0], &a[i]); //首尾互换
        AdjustDown(a, i); //向下调整
    }
}
int main()
{
    int arr[10] = { 2,1,5,7,6,8,0,9,4 };         //对数组进行大根堆排序
    HeapSort(arr, sizeof(arr) / sizeof(arr[0])); 
    return 0;
}

http://www.zhongyajixie.com/news/56595.html

相关文章:

  • 做cpa项目用什么网站信息流优化师简历模板
  • bc网站怎么做排名今日最新的新闻
  • 营销型网站的设计步骤首页优化排名
  • 杭州企业如何建网站企业推广平台排行榜
  • 国外的网站可以做百度推广吗电商产品推广方案
  • 江西火电建设公司网站百度指数关键词工具
  • 国家开放大学网站的作业怎么做全网推广推荐
  • 招聘类网站建设信息流优化师证书
  • 店铺logo图片免费生成女士seo推广技巧
  • 开发投资集团seo页面内容优化
  • 做编程的+网站巨量关键词搜索查询
  • 大连市卫计委行风建设网站拉新推广赚钱的app
  • 徐州建站服务线上推广方案怎么做
  • 重庆城乡建设网站首页浏览器大全网站
  • 网页设计与网站建设奥鹏考试答案国内十大搜索引擎网站
  • Tp5即做网站又提供api接口国外网站seo免费
  • 做外贸网哪些网站免费深圳企业黄页网
  • 做app页面的网站扬州百度推广公司
  • 商务网站开发考题网站移动端优化工具
  • 网站 需求 文档百度指数数据
  • 网站建设后的心得苏州seo按天扣费
  • 东莞seo建站广告费智能优化网站
  • 龙岗企业网站改版公司sem和seo是什么职业
  • 郑州微信网站网站推广的主要方式
  • 个人做网站 优帮云百度定位店铺位置怎么设置
  • 网站建设需要什么研究条件百度怎么收录自己的网站
  • 苏宁易购网站建设日程表网站关键词排名怎么提升
  • 微信群如何推广网站建设win优化大师怎么样
  • 公司支付网站服务费怎么做分录seo公司厦门
  • 现在佛山疫情最新情况seo网站优化培