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

微信做网站在线咨询 1 网站宣传

微信做网站,在线咨询 1 网站宣传,深圳建设营销型网站,重庆装修网目录 引言 1.归并排序的实现----c2.归并排序的复杂度分析时间复杂度空间复杂度 引言 归并排序(Merge Sort) 是一种基于分治法的排序算法,它的基本思想是将原始数组划分成较小的数组,然后递归地对这些小数组进行排序,最后将排好序…

目录

    • 引言
  • 1.归并排序的实现----c
  • 2.归并排序的复杂度分析
    • 时间复杂度
    • 空间复杂度

引言

归并排序(Merge Sort) 是一种基于分治法的排序算法,它的基本思想是将原始数组划分成较小的数组,然后递归地对这些小数组进行排序,最后将排好序的小数组合并成一个整体有序的数组。
归并排序是一种稳定的排序算法,其时间复杂度为 O(n log n),这使得它在大规模数据集上具有较好的性能。

基本应用:

  1. 排序: 归并排序是一种高效的排序算法,其时间复杂度为 O(n log n)。它对于各种数据分布情况都有较好的性能,特别适用于链表结构。
  2. 外部排序: 归并排序在外部排序中也很有用,因为它的排序过程不依赖于数据的分布。外部排序是处理大规模数据集无法一次加载到内存的情况下的一种排序方式。
  3. 合并有序序列: 归并排序的合并过程可以轻松地用于合并两个有序序列。这在数据库操作中常被用来合并两个已排序的结果集。
  4. 逆序数计算: 归并排序在计算逆序数(数组中的逆序对)时具有优势,因为在归并的过程中可以统计逆序对的数量。

1.归并排序的实现----c

归并排序的思路是:本质是递归
将一个数组分成许多个小数组(直到最后单个数组有序,也就是只有一个元素),再将这些有序的小数组递归,由下往上返回

步骤:

  1. 开辟动态数组,来复制之后有序的原数组
  2. 将原数组划分成较小的数组,也就是单元素的数组
  3. 将有序的数组拷贝,
  4. 通过动态数组拷贝,返回的有序小数组集成为有序原始数组

在这里插入图片描述

在这里插入图片描述

//归并排序
void _MergeSort(int* a, int begin, int end, int* tmp)
{//若一个区间只有一个元素,返回if (begin >= end)return;//若区间为不有序//记录中间坐标int mid = (begin + end) / 2;_MergeSort(a, 0, mid, tmp);_MergeSort(a, mid+1, end, tmp);//将有序的小区间集成为有序大区间int begin1 = begin, end1 = mid;int begin2 = mid + 1, end2 = end;int i = begin;while (begin1<=end1&& begin2<=end2){//俩数组比较if (a[begin1] <= a[begin2])tmp[i++] = a[begin1++];elsetmp[i++] = a[begin2++];}while (begin1 <= end1){tmp[i++] = a[begin1++];}while (begin2 <= end2){tmp[i++] = a[begin2++];}//注意拷贝的时候,数组的起始位置与拷贝空间大小memcpy(a + begin, tmp + begin, sizeof(int) * (end - begin + 1));
}
void MergeSort(int* a, int n)
{int* tmp = (int*)malloc(sizeof(int) * n);if (tmp == NULL){perror("malloc ");return;}//递归拷贝,分组_MergeSort(a, 0, n - 1, tmp);free(tmp);
}

2.归并排序的复杂度分析

时间复杂度

时间复杂度是O(n log n)

分为俩部分:
合并
每一层的合并操作的总时间复杂度是 O(n)
递归
递归的算法类似于二叉树后序遍历的时间复杂度,也就是递归深度,log n

空间复杂度

空间复杂度是 O(log n)

归并排序的空间复杂度相对较高,主要取决于递归调用的栈空间和临时数组的存储空间。
在最坏情况下,递归树的深度达到 log n ,因此空间复杂度是 O(log n)。此外,合并过程需要额外的 O(n) 空间来存储临时数组。

http://www.ritt.cn/news/11329.html

相关文章:

  • 阿里企业邮箱登陆入口网站seo运营培训机构
  • 汕头网站建设推广哪家好保定网站建设公司哪家好
  • 石家庄做外贸网站建设网络媒体有哪些
  • 找承包工程的平台seo专员的工作内容
  • 文化管 网站建设规划沧州seo包年优化软件排名
  • 网站建设学校百度网盘网页版
  • 共享门店新增跑腿距离计算优化汕头seo优化
  • 做外贸的网站平台有哪些app拉新一手渠道
  • 网站开发的相关语言有哪些百度推广怎么优化排名
  • wordpress bt站搭建谷歌关键词挖掘工具
  • 政府网站建设和管理情况报告上海专业的seo推广咨询电话
  • 临沂网站设计价格磁力搜索引擎不死鸟
  • 内蒙古网站制作公司口红的推广软文
  • 厦门企业如何建网站怎么给自己的公司做网站
  • 心雨在线高端网站建设软文推广300字
  • html编辑器电脑最新黑帽seo教程
  • 网站购物车功能怎么做哪里搜索引擎优化好
  • 武汉网站建设哪家最好做网络推广要学些什么
  • 优质做网站业务推广网站
  • wordpress网店插件淘宝优化关键词的步骤
  • 论述网站建设整个流程广东东莞今日最新消息
  • 成都哪里好玩的地方排行榜前十名seo全网推广
  • 江苏省建设厅网站证件查询大地资源网在线观看免费
  • mir设计公司官网长沙官网seo分析
  • 淘宝客网站主题无锡百姓网推广
  • 做一个网站需要多大的空间如何推广网址链接
  • 淄博市建设局网站黄石seo诊断
  • pc做网站服务器吗seo服务商技术好的公司
  • 昆明网站建设时间搜索量排名
  • 靖江网页定制网站优化方案怎么写