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

河南省建设招投标网站郑州网站seo公司

河南省建设招投标网站,郑州网站seo公司,想自己做网站需要会什么,乐清上班族网论坛目录 一 堆排序 二 直接选择排序 一 堆排序 堆排序(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.hrbkazy.com/news/26230.html

相关文章:

  • 建设银行成都市第九支行 网站手机优化大师下载
  • 网页怎么写google seo是什么意思
  • 怎么做网站转让机制 银行账户对接seo企业培训班
  • seo整站优化方法外贸建站服务推广公司
  • 网站关键字排名怎么做国外网站搭建
  • 网站制作 徐州国家免费技能培训有哪些
  • 信息分类网站建设爱网站查询挖掘工具
  • 360的网站排名怎么做九江seo优化
  • 茂名企业建站模板企业网络营销案例分析
  • 手机可怎么样做网站针对大学生推广引流
  • 企业网站怎么做推广打广告在哪里打最有效
  • 做类似电影天堂的网站违法吗企业网站优化哪家好
  • 山西网站群建设投放广告找什么平台
  • 看一个网站是用什么语言做的百度扫一扫网页版
  • 做h5小游戏的网站有哪些济南网络推广网络营销
  • 网上做平面设计兼职不错的网站谷歌搜索引擎香港免费入口
  • 广州短视频代运营公司seo1视频发布会
  • wordpress+4.9+googleseo是什么东西
  • 重庆有没有做网站的汕头百度关键词推广
  • 创建网站免费注册郴州网站建设
  • 自适应网站模板网站快速推广
  • 做招聘的网站有哪些网络营销具有哪些优势和吸引力
  • 网站开发要源码多少钱百度人工客服电话是多少
  • 做网站外包价格百度联盟广告点击一次收益
  • 找做网站app12345浏览器网址大全
  • ai素材免费下载网站百度电脑版登录网站
  • 网站搭建设计范文企业网站制作流程
  • 西安的商城网站夫唯seo视频教程
  • 广东网站制作平台微商推广哪家好
  • 免费手机网页网站公司培训课程有哪些