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

网站入股云建站html网页制作模板代码

网站入股云建站,html网页制作模板代码,微信客户管理系统平台官网,jsp网站开发源码实例【八大经典排序算法】堆排序 一、概述二、思路解读三、代码实现(大堆为例) 一、概述 堆排序是J.W.J. Williams于1964年提出的。他提出了一种利用堆的数据结构进行排序的算法,并将其称为堆排序。堆排序是基于选择排序的一种改进,通…

【八大经典排序算法】堆排序

  • 一、概述
  • 二、思路解读
  • 三、代码实现(大堆为例)


一、概述

堆排序是J.W.J. Williams于1964年提出的。他提出了一种利用堆的数据结构进行排序的算法,并将其称为堆排序。堆排序是基于选择排序的一种改进,通过维护一个堆来选择最大(或最小)的元素,并将其放置在数组的末尾,然后对剩余的元素进行递归调用堆排序。

堆排序在其初期的版本中存在一些性能问题,例如在构建堆的过程中需要频繁的调整堆的结构,导致性能的下降。为了改进这个问题,人们提出了一种称为“堆调整”的操作,将调整堆的过程优化为一次遍历,从而提高了性能。此外,还有一些其他的改进方法,如使用二叉堆来代替普通堆,使用自底向上的构建堆的方法等。

堆排序作为一种经典的排序算法,经过多年的发展与改进,已经成为一种高效稳定的排序算法,并在实际应用中得到广泛的应用。


二、思路解读

我们知道堆排序是一种基于堆数据结构的排序算法,所以堆排序分为以下几步:

①:构建大堆(或小堆)这里我们从数组的最后一个数据的父节点开始,采用向下调整算法来建堆。
向下调整算法有一个前提:左右子树必须是一个堆,才能调整。同时还要注意是调大堆还是小堆。
调小(大)堆:堆顶元素和孩子中最小(大)的节点比较,如果父节点大于(小于)较小的子节点子,两者交换。不断向下调整到合适位置。(调大堆,和较大孩子比较)
在这里插入图片描述

②:将堆中最大(或最小)的元素即堆顶元素与数组中最后一个元素交换位置,然后将堆的大小减1。将交换后的堆顶元素进行向下调整,直到堆再次满足堆性质。
在这里插入图片描述

③: 重复上述步骤,直到堆的大小为1,此时整个数组就有序了


三、代码实现(大堆为例)

void AdjustDown(int* a, int n, int parent)
{//建大堆int child = parent * 2 + 1;while (child < n){if (child + 1 < n && a[child + 1] > a[child]){child++;}if (a[parent] < a[child]){Swap(&a[parent], &a[child]);parent = child;child = parent * 2 + 1;}else{break;}}
}//堆排序
void HeapSort(int* a, int n)
{//升序,建大堆for (int i = (n - 2) / 2; i >= 0; i--){AdjustDown(a, n, i);}int end = n - 1;while (end > 0){Swap(&a[0], &a[end]);AdjustDown(a, end, 0);end--;}
}

时间复杂度:O(N*logN)
空间复杂度:O(1)

在这里插入图片描述
在这里插入图片描述

http://www.dinnco.com/news/21225.html

相关文章:

  • 流量统计网站推广法网站建设全包
  • 网站制作_做网站_耐思智慧百度100%秒收录
  • 哪家公司做门户网站搜狗推广登录入口
  • 支持asp的免费空间 适合钓鱼网站南宁网站推广公司
  • 女人和男人做爰网站如何开一个自己的网站
  • 个人音乐类网站服务器租借爱站网排名
  • 个人网站源码下载百度引流推广怎么收费
  • 常用的搜索引擎网站爱站工具
  • 度娘网站灯笼要咋做呢西安网站设计开发
  • 外包做网站平台 一分钟电脑培训班多少费用
  • 湛江搭建做网站在哪里做网络口碑营销的成功案例
  • 虚拟主机网站建设步骤百度词条官网入口
  • 安装wordpress中文win优化大师有用吗
  • 口碑营销案例及分析5年网站seo优化公司
  • 网站服务器操作系统选择成品短视频软件大全下载手机版
  • wordpress门户型多栏设计外贸seo优化
  • 网站没域名微信广告投放推广平台多少费用
  • 网站建设河南外链推广平台
  • 网站建设维护方向百度导航下载2020新版语音
  • 建设移动网站落实20条优化措施
  • 公司企业网站制作教程直销的八大课程
  • 顺的品牌网站设计价位朋友圈广告代理商官网
  • 江西网站建设销售电话关键词搜索工具有哪些
  • 河南科兴建设有限公司网站抖音seo怎么收费
  • 佛山建设网站公司跨境电商
  • 网站开发总监待遇微信营销系统
  • 网站制作价格行情谷歌seo怎么做
  • javaweb网站开发小项目做seo前景怎么样
  • 模板网站做外贸可以吗免费网站收录入口
  • wordpress编辑页面改字体颜色网络优化工程师吃香吗