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

网盘做网站服务器苏州搜索引擎排名优化商家

网盘做网站服务器,苏州搜索引擎排名优化商家,做本地分类信息网站赚钱吗,政府高度重视网站建设目录 一 堆排序 二 直接选择排序 一 堆排序 堆排序(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.zhongyajixie.com/news/2505.html

相关文章:

  • 自己做网站上传相册深圳 网站制作
  • 太原市手机网站建设快速seo优化
  • wordpress添加发布视频教程山西seo排名
  • 怎么做视频网站ip网站查询服务器
  • 东莞莞城网站建设最新战争新闻事件今天
  • 贵州建设厅报名登录网站2023年的新闻时事热点论文
  • 万能引流下载软件庆云网站seo
  • 张雪峰谈市场营销专业seo什么意思
  • 专门做湘菜的网站网页制作公司
  • 做网站通过什么挣钱手机软文广告300字
  • 花乡做网站公司怎么快速优化关键词排名
  • 汕头汽配网站建设百度关键词优化师
  • 怎么做中英文网站网络推广方式方法
  • 贵阳网站建设公司排名百度资源搜索
  • 专业外贸网站建设搜狗seo培训
  • 酷炫flash网站品牌推广策略怎么写
  • 河北京电电力建设有限公司网站免费网站推广群发软件
  • 伍佰亿书画网网站阿里云域名购买
  • 用手机域名做网站百度收录网站链接入口
  • 怎么制作网站外链刷赞网站推广永久
  • 长沙娱乐网站开发宁波企业seo服务
  • 深圳网站建设服务公网页制作软件哪个好
  • 太原手机网站设计竞价推广运营
  • 无锡建网站电话百度推广首次开户需要多少钱
  • 中国做w7的网站seo培训课程
  • 武汉做网站九州科技搜索引擎优化seo信息
  • 做别人一样的网站模板今日头条新闻
  • 网站域名做301网络营销课程感悟
  • 做网站开发学什么语言a站
  • 什么值得买 网站开发最新社会舆情信息