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

温州网站建设华一辽宁工程技术大学电子信息网

温州网站建设华一,辽宁工程技术大学电子信息网,wordpress 男扮女,如何用自己电脑做网站服务器目录 一 堆排序 二 直接选择排序 一 堆排序 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是 通过堆来进行选择数据。 需要注意的是排升序要建大堆,排降序建小堆。 直接选择排…

目录

一 堆排序

二 直接选择排序


一 堆排序

堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是 通过堆来进行选择数据。

需要注意的是排升序要建大堆,排降序建小堆。

直接选择排序的特性总结:

1. 堆排序使用堆来选数,效率就高了很多。

2. 时间复杂度:O(N * logN)

3. 空间复杂度:O(1)

4. 稳定性:不稳定

void Swap(int* x, int* y)
{int tmp = *x;*x = *y;*y = tmp;
}
void AdjustDown(int* a, int n, int parent)
{int child = parent * 2 + 1;while (child < n){if (child + 1 < n && 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)for (int i = (n - 1 - 1) / 2; i >= 0; i--){AdjustDown(a, n, i);}//堆排序//O(N*logN)int end = n - 1;while (end > 0){Swap(&a[0], &a[end]);AdjustDown(a, end, 0);end--;}
}int main()
{int arr[] = { 2, 3, 5, 7, 4, 6, 8};//InsertSort(arr, sizeof(arr) / sizeof(int));//排升序//InsertSort(arr, sizeof(arr) / sizeof(int));//排升序HeapSort(arr, sizeof(arr) / sizeof(int));//排升序for (int i = 0; i < sizeof(arr) / sizeof(int); i++){printf("%d ", arr[i]);}
}

 

 

我们可以算算向下建堆的时间复杂度

 

 二 直接选择排序

直接选择排序的特性总结:

1. 直接选择排序思考非常好理解,但是效率不是很好。实际中很少使用

2. 时间复杂度:O(N^2)

3. 空间复杂度:O(1)

4. 稳定性:不稳定

void SelectSort(int* a, int n)
{int begin = 0, end = n - 1;while (begin < end){int mini = begin;int maxi = begin;for (int i = begin + 1; i <= end; i++){if (a[i] < a[mini]){mini = i;}if (a[i] > a[maxi]){maxi = i;}}Swap(&a[mini], &a[begin]);//检查maxi是否被换走了if (maxi == begin){maxi = mini;}Swap(&a[maxi], &a[end]);begin++;end--;}
}

本节的重点是堆排序, 对二叉树的顺序结构基础要求很高, 大家如果基础不好或者不太理解,可以看看我二叉树的博客. 

继续加油!

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

相关文章:

  • 校园网站建设价格电子商务网站建设 教案
  • 文化局网站建设方案专业企业网站建设公司价格
  • 网站备案 接入商客户制作网站时的问题
  • 能够做外贸的网站有哪些问题营销策略都有哪些方面
  • 北京网站优化实战p2c网站方案
  • 网站后台收入怎么做会计分录开发网站需要注意
  • wordpress建站详细教程视频江苏市场监督管理局app
  • 外贸网站经典营销案例剑网三奇遇查询网站怎么做
  • 上海网站公竞争对手网站分析
  • 国外游戏ui设计网站南阳建网站公司
  • 网站建设方案文档wordpress免费主题插件下载地址
  • 哪个网站可以做头像wordpress改浏览数数据库
  • 网站建设数据库模板ih5 wordpress
  • 新乡手机网站建设哪家好哪些网站可以做爬虫实验
  • 锦州如何做百度的网站免费下载app软件官网
  • 做筹款的网站需要什么资质网站手绘教程
  • 易企建站个人备案网站内容
  • 天津网站建设服务电话苏宁网站优化与推广
  • 天津市建设厅注册中心网站企业官方网站怎么申请
  • 七星彩网站建设网站建设与维护制作网页
  • 0资本建设网站长春seo推广
  • 一流的网站建设哪家好所有网站302跳转百度
  • 凡科怎么建站教程配送货wordpress
  • 自己做个网站怎么赚钱wordpress 视频站模版
  • 广告营销策划是做什么的东莞搜索seo关键词
  • 阿里云网站建设流程教案网站建设Z亿玛酷1流量订制
  • 岚山区建设局网站网站开发和平台开发
  • 西部中大建设集团网站连云港市网站平台
  • seo外包公司需要什么上海seo
  • 网站建设所需资料必应搜索引擎网站