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

孝感网站开发选优搏网站导航栏垂直

孝感网站开发选优搏,网站导航栏垂直,国内低代码平台有哪些,国内免费做网页工具堆排序(Heapsort)是一种在时间复杂度上达到了最优的基于比较的排序算法。堆排序算法是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于&#xff0…

 

堆排序(Heapsort)是一种在时间复杂度上达到了最优的基于比较的排序算法。堆排序算法是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或者大于)它的父节点。

堆排序的基本思想是:

  1. 首先将待排序的序列构造成一个大顶堆(或小顶堆)。
  2. 此时,整个序列的最大值(或最小值)就是堆顶的根节点。
  3. 将其与末尾元素进行交换,此时末尾就为最大值(或最小值)。
  4. 然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值(或次大值)。
  5. 如此反复执行,便能得到一个有序序列了。

堆排序的时间复杂度是O(n log n)。

#include <stdio.h>  // 将以k为根的子树调整为最大堆  
void heapify(int arr[], int n, int k) {  int largest = k;  // 初始化根节点最大  int left = 2 * k + 1;  // 左子节点  int right = 2 * k + 2;  // 右子节点  // 如果左子节点比根节点大,则更新最大节点  if (left < n && arr[left] > arr[largest]) {  largest = left;  }  // 如果右子节点比最大节点大,则更新最大节点  if (right < n && arr[right] > arr[largest]) {  largest = right;  }  // 如果最大节点不是根节点,则交换根节点和最大节点,并继续调整子树  if (largest != k) {  int temp = arr[k];  arr[k] = arr[largest];  arr[largest] = temp;  heapify(arr, n, largest);  }  
}  // 堆排序函数  
void heapSort(int arr[], int n) {  // 构建最大堆  for (int i = n / 2 - 1; i >= 0; i--) {  heapify(arr, n, i);  }  // 从堆顶开始取出元素,并重新调整堆  for (int i = n - 1; i >= 0; i--) {  int temp = arr[0];  arr[0] = arr[i];  arr[i] = temp;  heapify(arr, i, 0);  }  
}  int main() {  int arr[] = {10, 7, 8, 9, 1, 5};  int n = sizeof(arr) / sizeof(arr[0]);  printf("Original array: ");  for (int i = 0; i < n; i++) {  printf("%d ", arr[i]);  }  printf("\n");  heapSort(arr, n);  printf("Sorted array: ");  for (int i = 0; i < n; i++) {  printf("%d ", arr[i]);  }  printf("\n");  return 0;  
}

该代码中,heapify函数将以k为根的子树调整为最大堆,heapSort函数则先构建最大堆,然后从堆顶开始取出元素并重新调整堆,最终得到排序后的数组。

http://www.yayakq.cn/news/939175/

相关文章:

  • 北京海岸设计公司网站站长之家端口扫描
  • 工作总结加强部门网站建设应用开发框架
  • 天津手机模板建站做网站商城开发什么语言最快
  • 免费网站大全app门户网站建设和检务公开情况自查报告
  • 长沙口碑好网站建设企业看板娘wordpress怎么带声音
  • 《网站建设 补充合同做网页大概需要多少钱
  • 如果网站没有做icp备案吗十大网文平台
  • 兰州网站建设lzwlxc网站开发软件排名
  • wordpress播放器mu38win优化大师怎么样
  • 房产中介网站建设模板电商网站设计公司排行榜
  • html网站建设实录网页广告关不掉怎么办
  • 武昌网站建设阿凡达网站设计
  • 天水有做网站的地方吗网站申请了如何上传到服务器
  • 网站建站那个好中国建筑招聘官方网站
  • 宁波h5模板建站wordpress主从库
  • 网站制作与建设教程下载软件工程师是做什么的
  • 怎么制作自己的网站网页济南品牌网站建设公司
  • 中山市城乡和住房建设局网站用添加视频到wordpress
  • 企业网站seo价格公众号怎么开通直播
  • 门户网站开发流程加工平台搭设规范要求
  • 深圳外贸网站定制兰州网站制作要多少钱
  • 上海金瑞建设集团网站wordpress 点赞打赏
  • 用dreamwever做网站emlog友情链接代码
  • 建e网站电子商务网站建设程序的开发
  • 营销型网站 平台中国建设银行信用卡电话
  • 济南网站建设方案书炫丽的网站
  • 一站式采购平台官网搜索引擎查询
  • 做网站的上海公司徐州建站公司
  • 哪些网站的简历做的比较好wordpress 关闭工具栏
  • asp网站报错信息网站推广公司推荐