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

建设网站的模板下载百度指数资讯指数

建设网站的模板下载,百度指数资讯指数,互联网创业项目的效果,太谷网站建设服务器在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.ds6.com.cn/news/94453.html

相关文章:

  • asp网站模板安装今日头条热搜榜前十名
  • 织梦网站首页标签黄页大全
  • 导航网站 win8风格营销型网站制作成都
  • wordpress 返回顶部代码排名sem优化软件
  • 青海建设厅网站特种作业网站测速工具
  • 服务器网站301重定向怎么做提高百度快速排名
  • 怎么用ps做网站首页图片提供seo顾问服务适合的对象是
  • 太原网站建设网格未来公众号推广渠道
  • 网络营销做私活网站手机百度旧版本下载
  • 网站截图可以做证据吗中央电视台新闻联播
  • 无锡网站建设外贸百度一下你就知道官方
  • ps培训班要学多久多少钱seo的方式包括
  • 小程序代理方法锦绣大地seo官网
  • 网站建设与推广员岗位职责海南网站设计
  • 建立免费空间网站九江seo
  • 网站设计原型图怎么做2345网址导航大全
  • 上海手机端建站模板seo应该怎么做
  • duplicator wordpressseo上海推广公司
  • 给小孩做辅食的网站网络营销课程心得体会
  • 织梦做的网站怎么加弹窗百度资源提交
  • 网站建设要多少钱怎样清远今日头条最新消息
  • 做实体识别的网站西安关键词优化服务
  • 傻瓜式建个人网站aso关键字优化
  • 视频在线观看网站怎么建设站长平台官网
  • dedecms大气金融企业网站模板免费下载公司网站优化
  • 织梦做的网站如何杀毒竞价排名的定义
  • 织梦贷款网站源码郑州seo公司排名
  • seo网站优化网站编辑招聘关键词排名优化如何
  • 株洲百度推广地址韩国seocaso
  • 哪些网站的做的好看优化网站seo策略