优秀音乐网站设计欣赏免费的seo优化

diannao/2026/1/16 11:14:10/文章来源:
优秀音乐网站设计欣赏,免费的seo优化,做招牌的网站有哪些,网站信息备案查询系统目录 一、前备知识 二、建堆 2.2.1 向上调整算法建堆 2.2.2 向下调整算法建堆 三、排序 3.1 常见问题 3.2 思路 3.3 源码 一、前备知识 详细图解请点击#xff1a;二叉树的顺序实现-堆-CSDN博客 本文只附上向上/向下调整算法的源码 //交换 void Swap(int* p, int* …目录 一、前备知识 二、建堆 2.2.1 向上调整算法建堆 2.2.2 向下调整算法建堆 三、排序 3.1 常见问题  3.2 思路 3.3 源码 一、前备知识 详细图解请点击二叉树的顺序实现-堆-CSDN博客 本文只附上向上/向下调整算法的源码 //交换 void Swap(int* p, int* q) {int tmp *p;*p *q;*q tmp; } //向下调整算法 void AdjustDown(int* a, int n, int parent) {//左孩子的下标int child parent * 2 1;while (childn){//找到两个孩子中较小的孩子-假设法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 AdjustUp(int* a, int child) {int parent (child - 1) / 2;while (child 0){if (a[child] a[parent]){Swap(a[child], a[parent]);child parent;parent (child - 1) / 2;}else{break;}} } 二、建堆 堆排序堆排序先有堆才能排序所以排序的第一步是要将一个一般的数组建成堆。 注由于建大堆还是小堆仅仅取决于自定的大小于号本文下述建堆都以小堆为例 2.2.1 向上调整算法建堆 思路 单一的一个结点可以看成一个堆后续的所有结点都可以看作是插入结点 所以只需要循环插入所有后续结点即可 void BuildHeap1(int* a, int n) {//把根节点看作是堆剩下的结点看作插入结点开始依次插入for (int i 1; i n; i){AdjustUp(a, i);} } 2.2.2 向下调整算法建堆 错误思路 向下调整算法要求左右子树必须为大/小堆所以从根节点开始结点开始建堆的做法是错误的 正确思路 上文说单一的一个结点可以看成一个堆。所以从最后一个叶子节点的父节点开始向下调整不断循环所有父节点就可以保证他的左右子树都是堆。 void BuildHeap2(int* a, int n) {//从最后一个叶子结点的父结点开始调for (int i ((n - 1) - 1) / 2; i 0; i--){AdjustDown(a, n, i);} } 三、排序 3.1 常见问题  为什么建堆后依然还要排序 大堆/小堆的定义注定了堆仅仅能保证父节点大于孩子结点无法保证孩子结点按照大于/小于的次序严格排列 升序建小堆降序建大堆的思路是否可行 升序建小堆首先对 n 个数建小堆选出最小的数接着对剩下的 n-1 个数建小堆选出第二小的数不断重复上述过程。若用向上调整算法可行但时间复杂度太高若使用向下调整算法时对n-1个调整就会发现原先的孩子父亲关系全乱不可行。降序建大堆首先对 n 个数建小堆选出最小的数接着对剩下的 n-1 个数建大堆选出第二大的数不断重复上述过程。使用向下调整算法时对n-1个调整就会发现原先的孩子父亲关系全乱不可行。 3.2 思路 本质上是堆删除的思路。利用堆的特性无论是大堆还是小堆根节点的值一定是最大/小的数。这样每进行一次调整就会选择出最小/大次小/大......便可以实现排序。为了防止出现父子关系乱序的问题将每次找到的最值放在堆的末位置对前n-1个元素进行向下调整便可以完美解决排序问题由此可以总结升序建大堆降序建小堆。 由此我们可以归纳出堆排序算法的步骤 1. 把无序数组构建成二叉堆。 2. 循环删除堆顶元素移到数组尾部调节堆产生新的堆顶。 3.3 源码 //降序建小堆 void HeapSortDown(int* a, int n) {//建小堆for (int i ((n - 1) - 1) / 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--; // 调整前n-1个元素} }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何利用站群做网站北京建设数字网站

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.报错: Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreEx…

全球最好的黄页网站大连网址

我们知道面向对象的三大特性是封装、继承和多态。然而我们有时候总是搞不清楚这些概念。下面对这些概念进行整理,为以后面向抽象的编程打下坚实的基础。封装的概念还是很容易理解的。如果你会定义类,那么相信你对封装的概念已经完全掌握了。下面定义的几…

好的做问卷调查的网站好凡科登陆

近年来,冻干猫粮作为备受追捧的高品质猫粮,吸引了越来越多养猫人的关注。新手养猫就弄不明白了,什么是冻干猫粮呢?冻干猫粮可以作为日常主食一直喂吗? 像我这种养猫老司机早就开始了冻干喂养。我把我这些年总结的经验…

网站建设试题以及答案象山专业网站建设

今天为大家分享的是我们在日常测试工作中, 一定会接触并且目前在企业中是主要测试内容的 功能测试与接口测试 一.功能测试与接口测试的基本概念。 1.1 什么是功能测试呢? 功能测试: 是黑盒测试的一方面, 检查实际软件的功能是否符合用户的需求 功能测试测试的内容包括以下…

公司网站设计哪家好wordpress的category

(1) Prefork MPM (优点) :使用多个子进程,每个子进程只有一个线程来处理一个 http 连接,不用担心线程安全问题缺点:内存消耗大,不擅长处理高并发环境,使用keep-alive长连接时要等到超…

百度网站怎样做分销是怎么做的

前言 这个主要是一个对象转换json处理的工具包, 依赖于HXCommon 里面主要包含了一些 字符串互转json, 对象互转json 的处理 相关使用 api 参照的是 net.sf.json 提供了相关的 get/opt/put/element 相关 api 适用于各种情况 具体的实现 这里不多做赘述 GitHub - 97065514…

ps免费模板网站开发手机网站用什么语言

Swashbuckle.AspNetCore3.0 介绍一个使用 ASP.NET Core 构建的 API 的 Swagger 工具。直接从您的路由,控制器和模型生成漂亮的 API 文档,包括用于探索和测试操作的 UI。项目主页:https://github.com/domaindrivendev/Swashbuckle.AspNetCore划…

瑞昌建站公司最火的网络推广平台

1、命名空间(namespace使用总结) C++中采用的是单一的全局变量命名空间。在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。当然,你也可以使用不同的名字,但有时我们并不知道另一个变量也使用完全相同的名字;有时为了程序的方便,必需使用同一名字,…

黑龙江网站开发ui中国网站

成员变量默认修饰符是public static final的原因是: Java中接口中成员变量默认修饰符是public static final的原因是为了确保接口的成员变量都是公共的、静态的和不可修改的。 - public修饰符确保了接口的成员变量可以在任何地方被访问到。 - static修饰符使得接口…

化工网站模板免费下载网站建设选哪家

node安装以及node的包管理工具 node安装nvm管理工具 node安装 1、下载node链接: 点击这里 2、选择需要下载的版本以及对应的系统版本 nvm管理工具 1、下载nvm链接: 点击这里 2、双击运行.exe文件 全部默认安装即可 3、nvm常用命令 nvm list avaliable 显示所有可以下载的n…

做企业网站的广告词竹子建站公司

实现重写 实现派生类中基类的成员称为重写。在C#中,可以重写方法、属性和索引器。 重写是多态性的一种形式,因为它使您能够创建具有相同名称和不同功能的不同代码块。 重写函数 在面向对象编程中,子类可以提供超类中已定义的专门版本的函数。这称为函数重写。 函数重写是…

手机在线销售网站 - 百度建筑公司简介范文大全

Linux系统及操作 (09) [ ping ] [ ping -c ]指定数量 [ ping -c5 192.168.88.2 ] 指定五次交互 DNS服务器 Domain Name System 域名系统 用于实现域名和IP地址相互映射的一个分布式数据库 将域名翻译成可由计算机识别的IP地址,方便用户间的互相访问 计算机无法直接识别**[…

做网站电话销售说辞wordpress 站长统计

vue前端开发自学基础,动态切换组件的显示&#xff01;这个是需要借助于&#xff0c;一个官方提供的标签&#xff0c;名字叫【Component】-[代码demo:<component :is"ComponetShow"></component>]。 下面看看代码详情。 <template><h3>动态…

网站模板哪个好建设厅是什么单位

前段时间想自己部署一个ChatGLM来训练相关的物料当做chatgpt使用&#xff0c;但是奈何没有gpu机器&#xff0c;只能使用cpu服务器尝试使用看看效果 我部署的 Chinese-LangChain 这个项目&#xff0c;使用的是LLM&#xff08;ChatGLM&#xff09;embedding(GanymedeNil/text2vec…

网站首页详细设计东莞网站建设网站建立

现在JavaConfig配置方式在逐步取代xml配置方式。而WebApplicationInitializer可以看做是Web.xml的替代&#xff0c;它是一个接口。通过实现WebApplicationInitializer&#xff0c;在其中可以添加servlet&#xff0c;listener等&#xff0c;在加载Web项目的时候会加载这个接口实…

网站开发整体流程网站做调查问卷给钱的兼职

最具人气大学排行榜7月榜单发布 清华大学排第一JPG&#xff0c;395x289&#xff0c;231KB&#xff0c;342_249大学人气排行榜 你的大学上榜了吗JPG&#xff0c;392x290&#xff0c;231KB&#xff0c;337_250大学人气排行榜 你的大学上榜了吗JPG&#xff0c;596x447&#xff0c;…

设计网站案例做网站必须要有的素材

前言 今天继续来学new和delete operator new 与operator delete函数 new和delete是用户进行动态内存申请和释放的操作符&#xff0c;operator new 和operator delete是系统提供的全局函数&#xff0c;new在底层调用operator new全局函数来申请空间&#xff0c;delete在底层通…

网站备案电话没接邢台市政建设集团股份有限公司网站

2.2. IME管理端&#xff08;IMMS&#xff09;初始化流程 IMMS运行在system server进程中&#xff0c;属于系统服务的一部分&#xff0c;用于控制输入法的显示/隐藏、切换、绑定等操作。 涉及代码文件路径&#xff1a; IMMS运行在system server进程中&#xff0c;属于系统服务的…

网页模板下载网站本地建设网站软件

我看着工资单上每一个开发团队成员的薪水&#xff0c;慢慢地我不能保持淡定了。 而当我看到我的工资排名是倒数的时候——靠近最后一名——我不由得倒抽一口冷气。就像圣诞故事中的那个可爱的小男孩Ralphie &#xff0c;想买气枪却被忽悠会有危险一样&#xff0c;我也不断忽悠…