百度笔试题之归并排序总结----空间复杂度为O(m+n)的归并排序与空间复杂度为O(1)的归并排序

本文通过一道百度笔试题介绍归并排序,详细阐述了空间复杂度为O(m+n)的传统归并排序方法以及如何在不借助额外空间,即空间复杂度为O(1)的情况下实现归并排序。通过比较两个已排序数组a[0,m]和a[m+1,m+n],并进行适当排序,最终将它们合并成一个有序数组。文中提供了两种不同的代码实现来说明这一过程。" 112065752,10538266,平面向量运算详解:平行与垂直的充要条件,"['数学', '平面向量', '向量运算', '高考复习', '坐标几何']
摘要由CSDN通过智能技术生成

题目:数组a[0,m] 和 a[m+1,m+n],都分别有序。将其merge成有序数组a[0,m+n]。(注:这里用的两个数组是分别有序的)

受这个题目启发,简单总结了一下Merge Sort:

1。空间复杂度为O(m+n):

MergeSort算法思想大家比较熟悉,如果空间复杂度是O(m+n)的话,只需临时申请一段m+n个元素的数组空间,分别比较a数组和b数组中已经排序的最小值,取出放入c数组中,当a或b数组中其中一个中的元素取完后,另一个数组中剩下的元素直接放入数组c后面即可,现在已经完成归并排序,如果只是将c数组作为临时数组,最后可将c中的元素转移到a和b的空间中。

代码如下:

#in
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值