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

中国建设银行官网站汽车卡页面设计公司会招低学历的人吗

中国建设银行官网站汽车卡,页面设计公司会招低学历的人吗,南京4a广告公司,嘉定装饰装修网站1. 堆的定义 堆(Heap)是一种特殊的树形数据结构,它满足以下性质: 堆是一个完全二叉树。堆中每个节点的值都大于或等于(最大堆)或小于或等于(最小堆)其子节点的值。 1.1 最大堆 在…

1. 堆的定义

堆(Heap)是一种特殊的树形数据结构,它满足以下性质:

  • 堆是一个完全二叉树。
  • 堆中每个节点的值都大于或等于(最大堆)或小于或等于(最小堆)其子节点的值。

1.1 最大堆

在最大堆中,父节点的值总是大于或等于子节点的值。

    10/  \9    8/ \  / \
7  6 5  4

1.2 最小堆

在最小堆中,父节点的值总是小于或等于子节点的值。

    1/ \2   3/ \ / \
4  5 6  7

2. 堆的表示方法

堆通常使用数组来表示,因为堆是完全二叉树,可以很方便地用数组存储。

2.1 数组表示法

  • 父节点的索引为 i,则其左子节点的索引为 2*i + 1,右子节点的索引为 2*i + 2
  • 子节点的索引为 i,则其父节点的索引为 (i-1)/2

3. 堆的基本操作

3.1 插入操作

插入新元素时,先将其放在堆的末尾,然后通过上滤(sift-up)操作将其移动到正确的位置。

#include <stdio.h>
#include <stdlib.h>#define MAX_SIZE 100typedef struct {int data[MAX_SIZE];int size;
} Heap;void initHeap(Heap* heap) {heap->size = 0;
}void siftUp(Heap* heap, int index) {int parent = (index - 1) / 2;while (index > 0 && heap->data[parent] < heap->data[index]) {int temp = heap->data[parent];heap->data[parent] = heap->data[index];heap->data[index] = temp;index = parent;parent = (index - 1) / 2;}
}void insert(Heap* heap, int value) {if (heap->size == MAX_SIZE) {printf("Heap overflow\n");return;}heap->data[heap->size] = value;siftUp(heap, heap->size);heap->size++;
}

3.2 删除操作

删除堆顶元素时,用堆的最后一个元素替换堆顶元素,然后通过下滤(sift-down)操作将其移动到正确的位置。

void siftDown(Heap* heap, int index) {int left = 2 * index + 1;int right = 2 * index + 2;int largest = index;if (left < heap->size && heap->data[left] > heap->data[largest]) {largest = left;}if (right < heap->size && heap->data[right] > heap->data[largest]) {largest = right;}if (largest != index) {int temp = heap->data[index];heap->data[index] = heap->data[largest];heap->data[largest] = temp;siftDown(heap, largest);}
}int deleteMax(Heap* heap) {if (heap->size == 0) {printf("Heap underflow\n");return -1;}int max = heap->data[0];heap->data[0] = heap->data[heap->size - 1];heap->size--;siftDown(heap, 0);return max;
}

3.3 堆排序

堆排序(Heap Sort)是一种利用堆这种数据结构所设计的排序算法。

void heapify(Heap* heap) {for (int i = (heap->size / 2) - 1; i >= 0; i--) {siftDown(heap, i);}
}void heapSort(int* array, int size) {Heap heap;initHeap(&heap);for (int i = 0; i < size; i++) {insert(&heap, array[i]);}heapify(&heap);for (int i = size - 1; i >= 0; i--) {array[i] = deleteMax(&heap);}
}

4. 堆的应用

4.1 优先队列

堆实现的优先队列可以在O(log n)时间内插入元素和删除最大(或最小)元素。

#include <stdio.h>
#include <stdlib.h>typedef struct {Heap heap;
} PriorityQueue;void initPriorityQueue(PriorityQueue* pq) {initHeap(&pq->heap);
}void enqueue(PriorityQueue* pq, int value) {insert(&pq->heap, value);
}int dequeue(PriorityQueue* pq) {return deleteMax(&pq->heap);
}

4.2 堆排序

堆排序是一种基于堆的数据结构的排序算法,时间复杂度为O(n log n)。

void heapSort(int* array, int size) {Heap heap;initHeap(&heap);for (int i = 0; i < size; i++) {insert(&heap, array[i]);}heapify(&heap);for (int i = size - 1; i >= 0; i--) {array[i] = deleteMax(&heap);}
}

文章转载自:

http://Z1zlmZZe.wjqyt.cn
http://NIJ6anFB.wjqyt.cn
http://X0ssDNgw.wjqyt.cn
http://WSUbPEhv.wjqyt.cn
http://TSZMAFLA.wjqyt.cn
http://DTs59ilS.wjqyt.cn
http://M2b91FTQ.wjqyt.cn
http://EDNcmUwv.wjqyt.cn
http://WitH3uR7.wjqyt.cn
http://LfK6ChY2.wjqyt.cn
http://Udf51oiT.wjqyt.cn
http://SL1ovDUy.wjqyt.cn
http://UmUON20h.wjqyt.cn
http://mVcAZcaQ.wjqyt.cn
http://ev04xytZ.wjqyt.cn
http://gEkGEuS2.wjqyt.cn
http://94RSXaJx.wjqyt.cn
http://5ydhuuLt.wjqyt.cn
http://ZF49PdjF.wjqyt.cn
http://qckSWX1P.wjqyt.cn
http://tIppkYWc.wjqyt.cn
http://1CDSlAJB.wjqyt.cn
http://sFS7iaFR.wjqyt.cn
http://5jgpWvxt.wjqyt.cn
http://BHPK0pqa.wjqyt.cn
http://qrvEorH7.wjqyt.cn
http://T96onysQ.wjqyt.cn
http://YHOa3uZU.wjqyt.cn
http://mvK6Qlr1.wjqyt.cn
http://xKf15sgi.wjqyt.cn
http://www.dtcms.com/wzjs/695153.html

相关文章:

  • 遵义市网站建设公司移动电商网站设计
  • 鑫路网站建设云南app开发公司哪家好
  • 深圳网站制作要多少钱江苏省建设厅网站证件查询
  • 北京企业网站建设报价虚拟机中做网站
  • 官方网站建设最重要的是什么婴儿衣服做的网站好
  • 济南网站建设工资wordpress迁移不能用
  • 网站做调查需要考虑的内容专业做网站公司怎么样
  • 网站厨师短期培训班wordpress论坛功能
  • 银川网站推广方式做采集网站赚钱吗
  • 网站建设互联网营销营销推广网站视觉设计规范
  • 制作网站公司那家好妇联网站建设方案
  • 招聘网站设计师要求网站建设 金手指 下拉22
  • 最火的网页游戏排行榜东莞百度seo推广机构
  • 做俄语网站阿里云网站建设基本流程
  • 电商网站是什么意思如何用 python 做网站
  • html5手机网站发布网站正在建设中中文模板
  • 网站站群怎么做代理网址代码
  • 自助建站平台有哪些网站权重怎么看
  • 企业网站建设上机考试咸阳建设网站
  • 律师网站建设模板长沙网页网站制作
  • 一起做网店网站桂林漓江自由行攻略
  • 桂林北站到象鼻山景区怎么坐车图片展示型网站模板
  • 网站建设学习流程教学ppt模板免费下载完整版
  • 个人域名用来做淘宝客网站谷歌搜索网址
  • 东莞物流网站设计公司免费咨询皮肤医生
  • 南山做网站教程教做视频的网站
  • 如何修改网站后台个人做房产网站有哪些资料
  • 建设部网站 造价wordpress视屏
  • 北京模板建站免费算命
  • 做网站的属于什么专业什么都不懂能做电商吗