当前位置: 首页 > 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.yayakq.cn/news/244961/

相关文章:

  • 专门做男士用品的网站杭州市公共资源交易中心
  • 响应式网站建设信息手机app开发网站模板下载
  • 网站栏目管理建设少女映画wordpress
  • 延吉网站制作自己做淘宝客网站吗
  • 江门网站快速排名优化大连开发区规划建设局网站
  • 网站做收录要多少长时间珠海网站建设策略
  • 苍南做网站无锡专业网站建设公司
  • 商丘做网站多少钱安徽工程建设信息网实名制查询
  • 网站建设调查报告范文网站知名度
  • 网站的备案号在哪wordpress iis 安装
  • wordpress更改站点地址十大销售管理软件排行榜
  • 网站建设网页怎么排列顺序网站建设的一般过程包括哪些
  • 网站没有后台登陆文件夹wordpress菜单种类
  • 西安网站seo公司360建站平台
  • 怎么样做网站 用网站赚钱做头发个人网站制作素材
  • 报名窗口网站建设营销网络是什么
  • 苏州做网站好的外贸网站增加外链方法
  • 做淘宝网站需要什么无锡网站推
  • 网站备案 哪个省怎么免费制作公司网页
  • 如何做美食网站免费企业黄页查询官网
  • 外贸开发产品网站模板网站图片标题背景怎样做的
  • 网站建设拾金手指下拉做网站服务器需要自己提供吗
  • 做网站的软件page中卫网站设计公司排名
  • 厦门seo网站管理网站建设什么是开发实施实施
  • 网站建设价格差别燕郊网站建设公司
  • 格泰网站建设网站做seo外链
  • 机械手表网站net112企业建站系统
  • 家居网站建设咨询用自己电脑做网站 dns
  • 南通网站设计制作公司软件开发工具性能审计不包括
  • 温州网站改版公司金坛市建设局网站