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

合肥 网站建设市场营销四大基本策略

合肥 网站建设,市场营销四大基本策略,wordpress 订单,成人本科有用吗堆排序 假定有一组数据极多的数,让我们进行排序,那我们很容易想到一种经典的排序方法,冒泡排序,我们对冒泡排序的时间复杂度进行分析: 显然,冒泡排序的时间复杂度是O(n^2),当数据量…

堆排序

假定有一组数据极多的数,让我们进行排序,那我们很容易想到一种经典的排序方法,冒泡排序,我们对冒泡排序的时间复杂度进行分析:

显然,冒泡排序的时间复杂度是O(n^2),当数据量巨大时,冒泡排序需要比较长时间才能完成排序,这在实际应用中是没有意义的。

而相比之下的堆排序时间开销则小得多。

接下来先给出堆排序的代码:

void Swap(int* child, int* parent)
{int tem = *child;*child = *parent;*parent = tem;
}void DownAdjust(int* p,int size,int parent)
{int child = parent * 2 + 1;while (child<size){if (child<size-1 && p[child + 1] < p[child])//size-1,不是size++child;if (p[child] < p[parent]){Swap(&p[child], &p[parent]);//parent = child;child = parent * 2 + 1;}else{break;}}
}//堆排序
void HeapSort(int* p, int size)
{//1.建堆//先找到最后一个非叶子节点,然后逆序向下调整for (int i = (size - 1 - 1) / 2; i >= 0; i--){DownAdjust(p, size, i);}//2.对堆排序int end = size - 1;while (end>0){Swap(&p[0], &p[end]);DownAdjust(p, end, 0);--end;}
}

我们知道堆在逻辑上是完全二叉树,在物理上是数组,那么给一个很大的数组,我们完全对这个数组进行建堆,然后进行堆排序。

接下来对堆排序的时间复杂度进行分析:

一个程序的时间复杂度看的是执行次数最多的基本语句,因此看建堆的时间复杂度即可:

因为堆是完全二叉树,而满二叉树也是完全二叉树,此处为了简化使用满二叉树来证明 ( 时间复杂度本来看的
就是近似值,多几个结点不影响最终结果 )

因此,时间复杂度为O(n)

两者对比我们发现,堆排序显然是更优的。

我们可以看看运行实例:

冒泡排序:

堆排序:

可以看出,堆排序的优越性。

http://www.hkea.cn/news/74280/

相关文章:

  • 烟台网站建设诚信臻动传媒百度网络营销中心
  • 贵阳网站建设搜王道下拉重庆seo网络推广关键词
  • 大型 网站的建设 阶段百度官方网站下载
  • 江苏专业做网站的公司百度地图导航网页版
  • 怎么去投诉做网站的公司宁波seo外包推广软件
  • 网络营销跟做网站有什么区别线上推广如何引流
  • 如何进行网店推广seo排名优化怎样
  • 什么建站程序好收录上海网络公司seo
  • 电子商务网站建设投资预算小程序平台
  • 广州外贸营销型网站成都移动seo
  • 如何韩国视频网站模板下载 迅雷下载sem竞价托管费用
  • 做网站去哪个平台seo培训学院
  • 网站移动端优化的重点有哪些营销策略ppt
  • 养车网站开发搜狗seo快速排名公司
  • 企业电子商务网站建设武汉百度快速排名提升
  • 建一个网站的流程今天刚刚发生的新闻
  • 建立网站请示优化服务是什么意思
  • 有一个做场景动画的网站山东seo费用多少
  • 阿里云服务器的网站备案流程图营销推广有哪些形式
  • 做宣传用什么网站好手游推广平台有哪些
  • 免费全国网站在线客服软件新手电商运营从哪开始学
  • 0317网站建设怎么建个网站
  • 做网站做电脑版还是手机版好电话营销
  • 深圳网站建设 设计搜索引擎的工作原理是什么?
  • 在线网站设计百度收录查询方法
  • 最新体育新闻足球百度seo收费
  • 手机网站做跳转好吗个人在百度上发广告怎么发
  • 民宿网站的建设最近热搜新闻事件
  • 企业网站建设的核心是企业推广视频
  • 设计素材网站蜂产品推广文章