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

怎样对一个网站做seo网站在线留言的用途

怎样对一个网站做seo,网站在线留言的用途,可以做软文推广的网站,多城市网站建设文章目录 一、前言二、堆的基本概念1. 堆的定义2. 堆的存储方式 三、堆的基本操作1. 插入操作#xff08;Insert#xff09;C 实现#xff08;大根堆#xff09; 2. 删除堆顶元素#xff08;Extract Max / Min#xff09;C 实现#xff08;大根堆#xff09; 3. 堆排序… 文章目录 一、前言二、堆的基本概念1. 堆的定义2. 堆的存储方式 三、堆的基本操作1. 插入操作InsertC 实现大根堆 2. 删除堆顶元素Extract Max / MinC 实现大根堆 3. 堆排序Heap SortC 实现 五、堆的应用1. **优先队列**2. **求 Top K 问题**3. **Dijkstra 最短路径算法** 六、总结 一、前言 在数据结构中堆Heap是一种特殊的完全二叉树通常用于实现优先队列Priority Queue。堆分为大根堆Max Heap和小根堆Min Heap分别适用于不同的应用场景例如堆排序、求Top K问题、Dijkstra最短路径算法等。 本文将介绍堆的概念、基本操作、应用以及C和Python的代码实现。 二、堆的基本概念 1. 堆的定义 堆是一种完全二叉树并且满足以下性质 大根堆最大堆 父节点的值总是大于等于子节点的值。小根堆最小堆 父节点的值总是小于等于子节点的值。 完全二叉树如果树的每一层都被完全填满除了可能的最后一层并且最后一层的节点靠左对齐则称其为完全二叉树。 2. 堆的存储方式 堆通常用数组存储父子关系通过索引计算 父节点索引 parent(i) (i - 1) / 2左子节点索引 left(i) 2 * i 1右子节点索引 right(i) 2 * i 2 三、堆的基本操作 1. 插入操作Insert 插入新元素的步骤 将元素放入数组的末尾。进行上浮Heapify-Up操作调整堆结构。 C 实现大根堆 #include iostream #include vector using namespace std;class MaxHeap { private:vectorint heap;void heapifyUp(int index) {while (index 0) {int parent (index - 1) / 2;if (heap[parent] heap[index]) break;swap(heap[parent], heap[index]);index parent;}}public:void insert(int value) {heap.push_back(value);heapifyUp(heap.size() - 1);}void printHeap() {for (int num : heap) cout num ;cout endl;} };int main() {MaxHeap heap;heap.insert(10);heap.insert(20);heap.insert(5);heap.insert(30);heap.printHeap();return 0; }输出示例 30 20 5 102. 删除堆顶元素Extract Max / Min 删除堆顶元素的步骤 将堆顶元素与堆的最后一个元素交换并移除最后一个元素。进行下沉Heapify-Down操作调整堆结构。 C 实现大根堆 void heapifyDown(int index) {int size heap.size();while (true) {int left 2 * index 1;int right 2 * index 2;int largest index;if (left size heap[left] heap[largest]) largest left;if (right size heap[right] heap[largest]) largest right;if (largest index) break;swap(heap[index], heap[largest]);index largest;} }void removeMax() {if (heap.empty()) return;heap[0] heap.back();heap.pop_back();heapifyDown(0); }3. 堆排序Heap Sort 堆排序的基本思想 建堆Heapify将无序数组转换为堆结构。 排序 交换堆顶元素与最后一个元素并移除最后一个元素。重新调整堆结构Heapify-Down。重复此过程直到所有元素有序。 C 实现 void heapSort(vectorint arr) {int n arr.size();// 构建最大堆for (int i n / 2 - 1; i 0; i--) {heapify(arr, n, i);}// 交换并调整堆for (int i n - 1; i 0; i--) {swap(arr[0], arr[i]);heapify(arr, i, 0);} }五、堆的应用 1. 优先队列 堆可以高效地实现优先队列使得插入和取出最大最小值的时间复杂度为O(log N)。 2. 求 Top K 问题 使用大小为 K 的最小堆可以在 O(N log K) 的时间内求出前 K 大的元素。 import heapqdef topK(nums, k):return heapq.nlargest(k, nums) # 取前 K 个最大元素print(topK([3, 1, 5, 12, 2, 11], 3)) # [12, 11, 5]3. Dijkstra 最短路径算法 在图算法中堆被用于优化最短路径算法以高效找到当前最短路径的顶点。 六、总结 堆是完全二叉树常用于实现优先队列。堆的基本操作插入Heapify-Up、删除Heapify-Down、堆排序。堆的应用广泛包括 Top K 问题、Dijkstra 算法等。 堆的高效性使其在数据流处理、搜索优化、任务调度等场景下广泛使用是数据结构中非常重要的一部分。
http://www.laogonggong.com/news/113156.html

相关文章:

  • 网站的收录电子书资源wordpress主题
  • 用手机怎么申请免费自助网站系统开发网站
  • seo是什么意思蜘蛛屯长沙优化科技有限公司
  • 北京哪个公司做网站河南网站建设推荐
  • 开发网站 需求网站构成的基本结构
  • 莱芜网站开发代理哪个网站可以查企业信息
  • 企业做网站用dedeCMS免费吗电商网站的建设案例
  • 亭湖区建设局网站编程猫少儿编程app下载
  • 镇江门户网谷歌seo搜索引擎优化
  • 一些网站只能在微信打开怎么做的钓鱼转转网站在线生成软件
  • 东莞网站建设网站推广价钱网站开发合同支付
  • 企业网站seo排名技校网站建设与维护课程教学总结
  • 怎么做福彩网站wordpress非常吃cpu
  • wordpress小说站数据wordpress手机版难看
  • 绿园区住房和城乡建设局网站网页传奇新游开服
  • 做网站颜色黑色代码多少钱室内设计招聘网站有哪些
  • 湖北勘察设计协会网站wordpress 初始化 数据库
  • 北京建机职业技能鉴定中心证书查询seo关键词排名优化软件
  • 网站建设淘宝详情页sem和seo哪个工作好
  • 怎样在工商网站做遗失visio网站建设流程图
  • 淄博做网站电话网站建设 繁体
  • 做同城信息类网站如何赚钱建站行业的利润
  • 营销网站优化推广西安做网站程序
  • 广州网站设计服务商腾讯网站安全检测
  • 做网站如何赚广费微信端微网站怎么做
  • 一个人做网站设计兼职搭建直播网站需要怎么做
  • 莱芜市住房和城乡建设厅网站公司网站制作有哪些
  • 青岛高品质网站制作注册百度账号免费
  • 网站优化建设兰州网站建设遇到的问题
  • 大学生做社交网站做网站的软件项目进度计划