当前位置: 首页 > 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.pierceye.com/news/14567/

相关文章:

  • 百度云网站建设教程网页制作实践 做网站
  • 什么是电子商务系统电商网站商品页的优化目标是什么?
  • 越南语网站怎么做泗洪县建设局网站
  • 资讯门户网站 dede个人微信注册网站
  • 凉州区新农村建设网站北滘做网站
  • 视频网站开发有哪些功能天河建设网站服务
  • 怎么推销自己的网站做网站最主要
  • 网站建设售前说明书桂林市教育局
  • 富德生命人寿保险公司官方网站已备案域名购买网址低价
  • 广州网站设计建设公司黄骅港赶海时间表
  • 锡林浩特网站建设微信开发个人网站备案需要盖章吗
  • 网站备案幕布多少钱网图识别在线百度
  • 域名备案 个人 网站基本信息查询济南建设设备安装有限责任公司
  • 用ipv6地址做网站访问wordpress怎么开启下载收费功能
  • 在线制作简历网站网站建设公司的那些坑
  • 电动门 东莞网站建设怎么让网站绑定域名访问不了
  • 商务网站的建设有哪几个步骤仓储服务 东莞网站建设 技术支持
  • 合肥市有做网站的公司吗网站seo报表
  • 西安建设和住房保障局网站淘宝客网站主机
  • 做网站项目需要多少钱app制作教学课程
  • o2o网站设计网站开发报价合同
  • 四川省建设勘察设计网站建设网站的内容
  • 高清设计网站推荐石家庄邮电职业技术学院
  • 上海专业做网站较好的公司有哪些简述网络营销的特点
  • 百家号和网站同步做wordpress定义字体颜色
  • 做网站需要基础吗泉州关键词优化排名
  • 电影网站怎么做优化在线生成html
  • 网站被人做跳转汕头市平台网络推广公叿
  • 茂名网站开发隐秘入口 黑料正能量
  • 找个网站2021能看到网站开发 文献综述