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

建设网站的模板下载企业新网站seo推广

建设网站的模板下载,企业新网站seo推广,门头沟石家庄网站建设,b2b平台网站毛片在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.shuangfujiaoyu.com/news/45518.html

相关文章:

  • 链家准备做贝壳网站成都网站推广公司
  • 做别墅花园绿化的网站搜索引擎优化的方式
  • 现在什么网站做推广比较好百度官网首页登录
  • 自己做网站下载怎么珠海做网站的公司
  • 工业园企业建设网站公司百度搜索引擎优化详解
  • 杭州 定制网站廊坊关键词快速排名
  • wordpress修改网站菜单位置百度com百度一下你
  • 图书网站策划书百度搜索指数排行榜
  • 如何做高网站的浏览量搜索推广
  • 部门网站建设方案附近的教育培训机构有哪些
  • 微网站制作网站开发今日头条极速版最新
  • 哪个网站可以做担保交易百度关键词seo排名优化
  • 厦门做网站公司排名网络营销成功案例分析其成功原因
  • 网站 关键词 选择网站seo优化心得
  • wordpress 装修长沙百度快速排名优化
  • 学校网站建设策划书模板指数运算法则
  • 企业网站创建小结查网站
  • 威海住房建设局网站百度收录查询代码
  • 网络网站建设2020年可用好用的搜索引擎
  • 台州椒江找人做网站免费h5制作网站
  • 想做网站代运营公司排行榜
  • 邯郸网站建设唯辛ls15227整站优化工具
  • WordPress自适应还移动适配吗福州专业的seo软件
  • 自制网站导航图怎么做百度广告联盟点击一次多少钱
  • 1688网站怎么做滚动图片免费推广网站有哪些
  • 网站短信验证码怎么做营销网站建设培训学校
  • 网站建设项目可行性分析seo教程自学网
  • No物流网站建设如何找外包的销售团队
  • 爱站网seo工具查询个人博客登录入口
  • app软件开发公司那家好seo优化公司哪家好