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

站长统计免费下载oa网站建设价格

站长统计免费下载,oa网站建设价格,在线音乐网站 用什么做,贵阳品牌网站建设公司堆排序的基本步骤#xff1a;#xff08;以从大到小的顺序排序为例#xff09; 1.构建大顶堆#xff08;每个结点的值都大于或等于其左右孩子结点的值#xff09; 2.排序#xff1a;每次堆顶的元素取出来#xff08;整个堆中值最大#xff09;#xff0c;与最后一个…堆排序的基本步骤以从大到小的顺序排序为例 1.构建大顶堆每个结点的值都大于或等于其左右孩子结点的值 2.排序每次堆顶的元素取出来整个堆中值最大与最后一个节点做交换使末尾元素最大 3.交换完之后需要重新维护堆中剩下的其他节点保证每次的堆顶都是最大值重复23直到序列完全有序 Code //维护堆的性质 //大顶堆父节点的左右孩子都比父节点小 //小顶堆父节点的左右孩子都比父节点大 void heapify(vectorint nums, int n, int i) {int large i;//保存父节点int left 2 * i 1;//左孩子int right 2 * i 2;//右孩子//判断左孩子是否比父节点大 大的话就更新父节点的下标if (leftn nums[left]nums[large])large left;//判断右孩子是否比父节点大 大的话就更新父节点的下标if (rightn nums[right]nums[large])large right;//到此已经找到了当前父节点和其左右孩子中最大的节点的下标//判断父节点的下标是否发生变化如果不相等说明左右孩子中有比父节点大的if (large ! i){//交换节点维护大顶堆swap(nums[large], nums[i]);//继续维护剩下的节点heapify(nums, n, large);} } void heapsort(vectorint nums, int n) {//建堆从最后一个有孩子的父节点开始建立//这里为什么是i n / 2 - 1 因为左孩子的下标可以表示为2*i1,此时最后一个孩子的下标为n-1//推导过来找到最后一个有孩子的父节点的下标为n / 2 - 1for (int i n / 2 - 1; i 0; i--){heapify(nums, n, i);}//排序将大顶堆的顶与最后一个叶子节点进行交换也就是每次找到当前堆中最大的元素放在数组的最后面for (int i n - 1; i 0; i--){//交换swap(nums[i], nums[0]);//继续维护大顶堆中剩下节点要始终保持是大顶堆的顺序heapify(nums, i, 0);} } int main() {int n;cin n;vectorint nums(n);for (int i 0; i n; i){cin nums[i];}heapsort(nums, n);cout 按升序顺序排序 endl;for (auto i : nums){cout i ;}return 0; } 这里如果要按照从小到大的顺序进行堆排序的话只需要将维护堆的函数中if判断条件做一点小改动即可。 void heapify(vectorint nums, int n, int i) {int small i;//保存父节点int left 2 * i 1;//左孩子int right 2 * i 2;//右孩子if (leftn nums[left]nums[small])small left;if (rightn nums[right]nums[small])small right;//判断父节点的下标是否发生变化if (small ! i){//交换节点维护大顶堆swap(nums[small], nums[i]);//继续维护剩下的节点heapify(nums, n, small);} } 堆排序是不稳定的排序算法。 堆排序的时间复杂度Onlogn
http://www.w-s-a.com/news/418464/

相关文章:

  • 快速网站建设公司哪家好优秀的网站建设
  • 网站开发的自适应wordpress搜索词结果按文章标题
  • 微网站是用什么开发的wordpress中英文主题
  • 纯静态网站怎么做淄博seo开发
  • 江西新农村建设权威网站盐步网站制作
  • 网站ui设计例子怎么做打鱼网站
  • 在1688做公司网站wordpress category
  • 单页面 网站 模板网站代理公司
  • 手机网站底部电话代码网站后台点击添加图片没有反应
  • 龙岩建设局网站声明自学制作网站难不难
  • 济南网站优化小黑godaddy中文网站开发
  • 做微课常用的网站广州seo优化推广
  • 主机屋如何做网站电脑网页游戏大全
  • 工作网站建设中布线费用账务处理特色的重庆网站推广
  • dede 网站地图模板htm写作网站水平哪个最好
  • 服务器上的网站erp教学零基础入门
  • 网站建设58设计资料网站
  • 如何把动态图发网站做头像网页设计实训报告小结
  • 做简历用的网站wordpress版权说明
  • 网站关键词有哪些网站新闻前置审批
  • 怎么自己注册网站义乌做公司网站
  • 做哪种网站赚钱苏州住房城乡建设部网站
  • 镇江做网站学编程学哪一种比较好
  • 华美天一建筑公司网站赚钱做任务的网站有哪些
  • asp网站打开速度慢家乡网页设计教程
  • 网站 设计 深圳书店网站的建设
  • 北京网络营销推广培训哪家好南宁软件优化网站建设
  • flash网站引导页仓库管理系统源码
  • 济南网站制作公司排名营销型网站管理系统
  • 公司网站设计要多少钱用什么做网站的访问量统计