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

赣州互联网哪家好想找搜索引擎优化

赣州互联网哪家好,想找搜索引擎优化,电商平台网址,福州网站建设制作前言#xff1a;我们已经学习了堆以及实现了堆#xff0c;那么我们就来给堆进行排序。我们怎么来进行排序呢#xff1f;这一次我们就来解决这个问题。 如果我们堆排序要求排序#xff0c;我们是建立大堆还是小堆呢#xff0c;如果我们建的小堆的话#xff0c;那我们在排序… 前言我们已经学习了堆以及实现了堆那么我们就来给堆进行排序。我们怎么来进行排序呢这一次我们就来解决这个问题。 如果我们堆排序要求排序我们是建立大堆还是小堆呢如果我们建的小堆的话那我们在排序的时候就给不断地进行建堆那么我们的时间复杂度就会很大如果我们建立大堆的话最大的数就在堆顶如果我们要给接下来的排序我们要求排升序的话我们的大堆就可以很简单的解决这个问题我们只需要把堆顶的数和最后一个数进行交换在不断地进行向下调整就可以了。时间复杂度就很小所以我们排升序就建立大堆。 建立大堆 void Swap(HPDataType* p1, HPDataType* p2) {HPDataType tmp *p1;*p1 *p2;*p2 tmp; }void AdjustUp(HPDataType* a, int child) {int parent (child - 1) / 2;//while (parent 0)while (child 0){if (a[child] a[parent]){Swap(a[child], a[parent]);child parent;parent (child - 1) / 2;//child (child - 1) / 2;//parent (parent - 1) / 2;}else{break;}} }void AdjustDown(HPDataType* a, int size, int parent) {int child parent * 2 1;while (child size){// 假设左孩子小如果解设错了更新一下if (child 1 size a[child 1] a[child]){child;}if (a[child] a[parent]){Swap(a[child], a[parent]);parent child;child parent * 2 1;}else{break;}} }void HeapSort(int* a, int n) {//建大堆//O(N*logN)for (int i 1; i n; i){AdjustUp(a, i);}int end n - 1;while (end 0){Swap(a[0], a[end]);AdjustDown(a, end, 0);--end;} }我们的end是最后一个元素下标是前面的元素的个数我们就让它与堆顶元素交换在向下调整调整完之后就让end–也就是堆顶与下标为n-2的元素交换在进行调整反复操作知道end0结束。 我们建立大堆的代码还可以改进优化到时间复杂度为O(N) void HeapSort(int* a, int n) {//建大堆/*O(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;} }因为我们的父节点下标为子节点下标减去1再除以2所以我们可以直接利用循环传参的是父节点的下标所以我们的这个方法是先从最下面的父节点开始调整最后在调整下标为0的父节点。 接下来我们就来测试我们代码 int main() {int a[] { 4, 6, 2, 1, 5, 8, 2, 9 };HeapSort(a, sizeof(a)/sizeof(int));for (int i 0; i sizeof(a)/sizeof(int); i){printf(%d , a[i]);}printf(\n);return 0; }最后就成功的将排序后的堆打印出来就可以了。感谢大家的支持
http://www.zqtcl.cn/news/14567/

相关文章:

  • 网站建设流费用百度推广关键词规划师
  • 手机网站建设维护协议网站建设 华博互联
  • 做个网站要多少钱 一般手机做wordpress
  • 大连网站开发建站莱芜网站建设及优化
  • 好网站求推荐资源丰富免费的网站推荐排名
  • 哪里可以免费建网站电商设计是做什么的工作
  • 网站建设后的优势公众号 一键导入wordpress
  • 安徽住房和城乡建设部网站首页小程序app开发多少钱
  • 哈尔滨网站建设多少钱wordpress网页打开加快
  • 网站引导页模板2022年最近一周新闻大事
  • 济南设计网站建筑 企业官网设计
  • 网站设计师和ui设计师官网搭建
  • 做资源共享网站自己做的动画买给网站
  • 服务性企业网站广州建设工程交易中心网站
  • 成都网站开发微信手机网页版
  • 金融网站织梦模板做家常便饭网站
  • 百度 新网站 重定向过多国内广告公司排行
  • 网站置顶jq注册公司代理记账头像图片
  • 建站系统排行榜辽阳市建设行业培训中心网站
  • 网站 图片防盗链win2003搭建wordpress
  • 怎么用php做网站方案263企业邮箱入口登录官网
  • 怎么自己做网站备案网站开发app开发
  • 网站首页页面设计多少钱常州网站建设托管
  • 农业网站怎么做摄影网站有哪些功能
  • 兼职 网站 小程序 建设网站没备案可以使用了吗
  • 音乐网站开发答辩ppt网页微信版扫描确认登录后无法显示此页
  • 什么是域名系统 网站建设教程wordpress post下载文件
  • 站长之家怎么找网址自助网站制作
  • 广西专业做网站的公司网站正能量视频不懂我意思吧
  • 郑州网站设计 郑州网站开发东莞南城房价