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

衡阳市做网站上海今天发生的重大新闻

衡阳市做网站,上海今天发生的重大新闻,中山本地网站建设推广企业,惠州网站建设选惠州邦本期讲解堆排序的实现 —————————————————————— 1. 堆排序 堆排序即利用堆的思想来进行排序,总共分为两个步骤: 1. 建堆 • 升序:建大堆 • 降序:建小堆 2. 利用堆删除思想来进行排序. 建堆和堆删…

本期讲解堆排序的实现

——————————————————————

1. 堆排序

堆排序即利用堆的思想来进行排序,总共分为两个步骤:


  1. 建堆
    • 升序:建大堆
    • 降序:建小堆
2. 利用堆删除思想来进行排序.

建堆和堆删除中都用到了向下调整,因此掌握了向下调整,就可以完成堆排序。

PS: 向下调整的代码实现已在上一篇博客最后(Heap.c) 分享

堆排序的两种实现

在此,我们提倡第二种堆排序的方法

1.


int a[]={2,5,7,4,1,6,9,8,3};void HeapSort(int* a,int n)
{Heap heap;HeapInitArray(&heap, a, n);//建立了小堆//排序int i = 0;while (!HeapEmpty(&heap)){a[i] = HeapTop(&heap);printf("%d\n",a[i]);i++;//为了打印HeapPop(&heap);}HeapDestroy(&heap);
}

缺点:
 1.空间复杂度为O(N)
 2.需要去写堆的数据结构(子函数)太麻烦。

2.

//找降序,建小堆
void HeapSort(HeapDataType* a ,int n)
{//1.原数组建小堆,时间复杂度O(N)for (int i = (n - 1 - 1) / 2; i >= 0; i--){AdjustDown(a,n,i);//参数:目的地,个数,开始调整的位置(parent)}//2.交换,继续使用向下调整, 时间复杂度O(N*logN)int end = n - 1;while (end > 0){Swap(&a[0],&a[end]);AdjustDown(a,end,0);--end;}
}

堆排序的时间复杂度为o(N*logN)

这个博客如果对你有帮助,给博主一个免费的点赞就是最大的帮助

欢迎各位点赞,收藏和关注哦

如果有疑问或有不同见解,欢迎在评论区留言哦

后续我会一直分享双一流211西北大学软件(C,数据结构,C++,Linux,MySQL)的学习干货以及重要代码的分享

http://www.yidumall.com/news/93060.html

相关文章:

  • 做网站1000以下哪家好色盲测试图数字
  • 政府网站cms模板成都网站建设方案服务
  • 做推送封图的网站百度动态排名软件
  • 查找网站备案qq排名优化网站
  • 文章资讯类网站竞价运营是做什么的
  • b2b网站有哪些方面南京seo推广公司
  • 不用写代码做网站软件嘉兴新站seo外包
  • 买好域名后怎么做网站广州seo技术外包公司
  • 通信工程毕设可以做网站吗饥饿营销的十大案例
  • 免费字体下载网站乐事薯片软文推广
  • 推广软件工具孔宇seo
  • 好的手机端网站模板下载软件网络推广的方式有哪些?
  • 网站建设要那些东西网络营销热点事件案例分析
  • 公司手机网站建设标题优化怎么做
  • 培训前端网站开发如何设计一个网页
  • 网站建设网站推广服务公司高端seo服务
  • 打电话给客户怎样介绍自己是做网站的?开场白?企业官方网站怎么申请
  • 网站建设动态静态郑州seo外包收费标准
  • 南山做网站的公司google中文搜索引擎入口
  • 小企业网站建设厂家有哪些互联网推广的优势
  • wordpress页眉导航商品seo优化是什么意思
  • wordpress 邮箱登陆搜索引擎排名优化价格
  • 2013年以前pc网站建设上海seo外包
  • 做黄色网站多少年兰州网络优化seo
  • 影视作品网站开发与设计电商网络推广
  • 公司网站域名如何申请网站优化的方法有哪些
  • 武汉影楼网站建设网络推广工作好做不
  • 可口可乐的网站建设迅雷下载磁力天堂
  • html5高端网站建设北京seo主管
  • 网站的切图是谁来做东莞seo优化方案