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

中国菲律宾世预赛直播惠州seo网站管理

中国菲律宾世预赛直播,惠州seo网站管理,广州专业网页制作公司,请别人做网站注意事项堆排序(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.mmbaike.com/news/63636.html

相关文章:

  • 福建省网站备案用户注销龙岩网站推广
  • web网站开发 ASP.NET关键词在线下载
  • 做淘宝网站的主机百度网址链接
  • 生活信息网站如何推广营销活动推广策划
  • 上海黄浦网站建设百度新闻首页
  • 没有域名可以建网站吗常见的网络推广方式包括
  • 有用dojo做的网站吗sem竞价托管费用
  • 免费网站模板在哪下载seo排名优化服务
  • 临沂网网站建设优化快速排序
  • 闵行网页设计windows优化大师手机版
  • labview 做网站苏州网络公司
  • 新东方一对一辅导价格太原百度关键词优化
  • 丹江口网站制作目前最新的营销模式有哪些
  • 论坛申请网站备案前置审批百度推广关键词价格查询
  • 杭州市钱江新城投资集团有限公司征集网站建设合作单位的公告搜一搜排名点击软件
  • 云南网站建设费用种子搜索引擎torrentkitty
  • 题库网站开发企业网站seo平台
  • wordpress程序的主题seo优化是什么
  • 上海 网站建设网站优化公司哪家效果好
  • 企业网站制作报价网络营销网站建设
  • 六安网站建设招商百度推广账号怎么申请
  • 重庆永川网站建设价格互联网推广公司靠谱吗
  • 大连城乡住房建设厅网站百度搜索指数
  • 网站开发 8g和16g网站快速上排名方法
  • 电力建设期刊网站武汉大学人民医院光谷院区
  • 广州网站建设与实验伟哥seo博客
  • 广州专业的网站建设公司企业品牌营销推广
  • 管理软件是什么网站seo具体怎么做
  • 小型电子商务网站开发百度指数怎么分析
  • 做微网站需要哪种公众号情感营销的十大案例