wordpress 后台首页网站优化的策略

张小明 2026/3/12 20:31:35
wordpress 后台首页,网站优化的策略,网页设计制作项目,佛山做外贸网站的公司文章目录堆#xff08;Heap#xff09;一、堆的基本概念1. 定义2. 特点二、二叉堆的特点二、堆的数组表示堆的相关操作创建堆的类型上浮#xff08;Heapify Up#xff09;下沉#xff08;Heapify Down#xff09;插入操作删除堆顶元素获取堆顶元素完整代码堆#xff08;…文章目录堆Heap一、堆的基本概念1. 定义2. 特点二、二叉堆的特点二、堆的数组表示堆的相关操作创建堆的类型上浮Heapify Up下沉Heapify Down插入操作删除堆顶元素获取堆顶元素完整代码堆Heap一、堆的基本概念1. 定义二叉堆是一种完全二叉树它满足堆属性最大堆每个节点的值都大于或等于其子节点的值最小堆每个节点的值都小于或等于其子节点的值2. 特点二、二叉堆的特点完全二叉树除了最后一层其他层都是满的最后一层从左到右填充堆属性父节点和子节点之间保持特定的大小关系数组表示可以用数组高效存储不需要指针二、堆的数组表示对于下标为 i 的节点父节点parent(i) (i-1)/2左子节点left(i) 2*i 1右子节点right(i) 2*i 2堆的相关操作创建堆的类型包括堆的数组堆的类型(最大堆,最小堆)获取节点的父节点,左孩子,右孩子class Heap { public: vectorint heap; bool isMaxHeap; // true表示最大堆, false表示最小堆 // 获取父节点索引 int parent(int index) { return (index - 1) / 2; } // 获取左孩子索引 int leftChild(int index) { return 2 * index 1; } // 获取有孩子索引 int rightChild(int index) { return 2 * index 2; } };上浮Heapify Up上浮操作用于在堆中插入新元素后恢复堆的性质。当我们向堆的末尾添加一个新元素时可能会破坏堆的堆序性父节点大于/小于子节点。上浮操作通过不断比较新元素与其父节点必要时交换它们直到堆性质恢复。void heapifyUp(int index) { while (index 0) { int parent (index - 1) / 2; // 最大堆如果当前节点大于父节点交换 // 最小堆如果当前节点小于父节点交换 if (compare(heap[index], heap[parent])) { swap(heap[index], heap[parent]); index parent; } else { break; } } }下沉Heapify Down下沉操作用于移除堆顶元素后恢复堆的性质。当我们移除堆顶元素时通常将最后一个元素移到堆顶然后通过下沉操作将其调整到合适位置恢复堆性质。void heapifyDown(int index) { int size heap.size(); while (true) { int leftChild 2 * index 1; int rightChild 2 * index 2; int target index; // 找到需要交换的子节点 if (leftChild size compare(heap[leftChild], heap[target])) { target leftChild; } if (rightChild size compare(heap[rightChild], heap[target])) { target rightChild; } // 如果需要交换继续下沉 if (target ! index) { swap(heap[index], heap[target]); index target; } else { break; // 堆性质已满足 } } }插入操作插入操作向堆中添加新元素。首先将元素添加到数组末尾.然后执行上浮操作将其调整到正确位置。// 插入元素 void push(int value) { heap.push_back(value); heapifyUp(heap.size() - 1); }删除堆顶元素检查堆是否为空保存堆顶元素将最后一个元素移到堆顶删除最后一个元素如果堆不为空对堆顶执行下沉操作void pop() { if (heap.empty()) { cout 堆为空无法删除 endl; return; } heap[0] heap.back(); heap.pop_back(); if (!heap.empty()) { heapifyDown(0); } }获取堆顶元素检查堆是否为空返回数组的第一个元素// 获取堆顶元素 int top() { if (heap.empty()) { cout 堆为空 endl; return -1; } return heap[0]; }完整代码class Heap { public: vectorint heap; bool isMaxHeap; // true表示最大堆, false表示最小堆 // 比较函数 bool compare(const int a, const int b) { return isMaxHeap ? a b : a b; } // 获取父节点索引 int parent(int index) { return (index - 1) / 2; } // 获取左孩子索引 int leftChild(int index) { return 2 * index 1; } // 获取有孩子索引 int rightChild(int index) { return 2 * index 2; } // 上浮操作 void heapifyUp(int index) { while (index 0) { int parent (index - 1) / 2; if (compare(heap[index], heap[parent])) { swap(heap[index], heap[parent]); index parent; } else { break; } } } // 下沉操作 void heapifyDown(int index) { int size heap.size(); while (true) { int leftChild 2 * index 1; int rightChild 2 * index 2; int target index; // 找到当前节点、左子节点、右子节点中最符合堆性质的节点 if (leftChild size compare(heap[leftChild], heap[target])) { target leftChild; } if (rightChild size compare(heap[rightChild], heap[target])) { target rightChild; } // 如果当前节点不是最大的/最小的交换并继续下沉 if (target ! index) { swap(heap[index], heap[target]); index target; } else { break; } } } // 构造函数 Heap(bool maxHeap true) : isMaxHeap(maxHeap) {} // 从数组建堆的构造函数 Heap(const vectorint arr, bool maxHeap true) : isMaxHeap(maxHeap) { heap arr; // 从最后一个非叶子节点开始建堆 for (int i heap.size() / 2 - 1; i 0; i--) { heapifyDown(i); } } // 插入元素 void push(int value) { heap.push_back(value); heapifyUp(heap.size() - 1); } // 删除堆顶元素 void pop() { if (heap.empty()) { cout 堆为空无法删除 endl; return; } heap[0] heap.back(); heap.pop_back(); if (!heap.empty()) { heapifyDown(0); } } // 获取堆顶元素 int top() { if (heap.empty()) { cout 堆为空 endl; return -1; } return heap[0]; } // 堆是否为空 bool empty() { return heap.empty(); } // 获取堆大小 int size() { return heap.size(); } // 获取堆类型 string getType() { return isMaxHeap ? 最大堆 : 最小堆; } };
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

wordpress 汽车 模板下载东莞搜索网络优化

ACE-Step:开源高效音乐生成大模型解析 在AI正以前所未有的速度重塑内容创作的今天,音乐领域终于迎来了属于它的“Stable Diffusion时刻”。曾经需要专业录音棚、编曲经验与数周打磨才能完成的一首原创歌曲,如今可能只需要一段文字描述和20秒…

张小明 2026/3/5 4:11:14 网站建设

网站开发团队构成眼科医院网站开发策划

Python是一种高级编程语言,以其简洁易读的语法、强大的标准库、跨平台兼容性和庞大的社区支持等特点,广泛应用于Web开发、数据科学、人工智能、自动化运维等领域。其中,简洁易读的语法使得Python代码更接近自然语言,降低了学习曲线…

张小明 2026/3/5 4:11:15 网站建设

网站备案密码是什么网站建设seo推广

EasyAdmin8:企业级后台管理系统的智能化开发解决方案 【免费下载链接】EasyAdmin8 项目地址: https://gitcode.com/gh_mirrors/ea/EasyAdmin8 在数字化转型浪潮中,高效的后台管理系统已成为企业提升运营效率的关键工具。EasyAdmin8作为基于Think…

张小明 2026/3/5 4:11:15 网站建设

武胜网站建设高校后勤网站建设要求及内容

📈 算法与建模 | 专注PLC、单片机毕业设计 ✨ 擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。✅ 专业定制毕业设计✅ 具体问题可以私信或查看文章底部二维码本系统旨在设计一个集成紫外线消毒、臭氧辅…

张小明 2026/3/5 4:11:16 网站建设

中国国家城乡建设部网站网站地图做关键词排名

Excalidraw AI生成灾备切换流程图 在一次深夜的线上故障复盘会上,运维团队争论不休:主数据库宕机后到底该先切DNS还是先启备用实例?会议纪要里只有零散的文字记录,没人能说清完整的切换路径。这种场景在IT系统运维中并不罕见——关…

张小明 2026/3/5 4:11:18 网站建设

公司网站cms网站开发未按合同约定工期完工

本文总结:Redis是一款基于内存的键值型NoSQL数据库,具有高性能、持久化和集群支持等特性。它提供五种基本数据结构:String(字符串)、Hash(哈希)、List(列表)、Set&#x…

张小明 2026/3/5 4:11:19 网站建设