可能内存溢出的高级排序算法-归并排序

devtools/2024/9/23 7:31:07/

归并排序

归并排序在经典递归实现中需要的额外空间相对较多。这是因为在归并排序的过程中,需要与原始数组大小相同的额外空间来存储临时合并的数组。所以,其空间复杂度为O(n),其中n表示待排序数组的长度。在递归过程中,需要创建临时数组来存储分割后的子数组,这些临时数组会随着递归的进行不断地被创建和释放。

相比快速排序算法,归并排序在任何情况下都是O(nlogn),而快速排序在最坏的情况下是O(n的平方)

算法代码如下:

class Solution {public int[] sortArray(int[] nums) {return mergeSort(nums, 0, nums.length-1);}public static int[] mergeSort(int[] nums, int l, int r){if(l==r){int[] newsz=new int[1];newsz[0]=nums[l];return newsz;}int mid=(l+r)/2;int[] mergeSort1 = mergeSort(nums, l, mid);int[] mergeSort2 = mergeSort(nums, mid + 1, r);int[] sum=new int[mergeSort1.length+mergeSort2.length];int m=0,i=0,j=0;while (i<mergeSort1.length&&j<mergeSort2.length) {if (mergeSort1[i] <= mergeSort2[j]) {sum[m++] = mergeSort1[i++];} else {sum[m++] = mergeSort2[j++];}}while (j<mergeSort2.length){sum[m++]=mergeSort2[j++];}while (i<mergeSort1.length){sum[m++]=mergeSort1[i++];}return sum;}
}

http://www.ppmy.cn/devtools/25249.html

相关文章

【目标检测】Yolov7 的 ELAN 和 E-ELAN 模块演进(涉及到分组卷积,cardinality,梯度路径)

感觉从 YOLOv6 开始&#xff0c;YOLOv6 系列感觉优化点都着重于推理速度上面&#xff0c;YOLOv6 的 RepBlock 重参数化&#xff0c;给我的感觉就是算子融合进行加速。而 YOLOv7&#xff0c;为了在各种架构的边缘设备上获得极致的推理速度。 YOLOv7 的工作&#xff1a; 新的 b…

星火首发“多情感超拟人合成”,安卓端下载量国内领先

【头部财经】日前&#xff0c;据七麦数据显示&#xff0c;截至4月26日&#xff0c;科大讯飞的讯飞星火APP在安卓端下载量已超过9600万次&#xff0c;成为国内工具类通用大模型APP的领跑者&#xff0c;讯飞星火凭借其前沿技术和卓越性能&#xff0c;赢得了广大用户的信赖和支持。…

MS8258D高增益带宽积 FET 输入放大器

MS8258D 是一款具有 CMOS 输入的低噪声运算放大 器&#xff0c;适用于宽带跨阻和电压放大器应用。 当将该器件配置为跨阻放大器 (TIA) 时&#xff0c; 7GHz 增益 带宽积 (GBWP) 可为高跨阻增益下实现宽闭环带宽的应 用提供支持。 MS8258D 具有反馈引脚 (FB) &#x…

Linux 高级网络设置

1. rp_filter 逆向路由检查 rp_filter &#xff08;Reverse Path Filtering&#xff09;参数定义了网卡对接收到的数据包进行反向路由验证的规则。他有三个值&#xff0c;0、1、2&#xff0c;具体含意如下&#xff1a; 0&#xff1a;关闭反向路由校验1&#xff1a;开启严格的…

uni框架下的前端小知识

<movable-area> 和 <movable-view> 组件来创建一个可以移动的区域&#xff0c;这通常用于模拟地图或座位图等场景的拖动效果。 1、direction&#xff1a;移动方向&#xff0c;可选值为all、vertical、horizontal分别表示所有方向、垂直、水平方向。 2、inertia&am…

Vue2之 v-if VS v-show

Vue2 中的 v-if 和 v-show 都是用来实现条件性渲染的指令&#xff0c;用于控制元素显示与隐藏的指令&#xff0c;但它们在实现机制和使用场景上有所不同&#xff1a; 一、实现机制&#xff1a; 1.1、v-if 当条件表达式为真时&#xff0c;Vue.js 会根据条件动态地创建或销毁…

TCP关闭连接时的一些思考

TCP协议是TCP/IP栈中最复杂的协议&#xff0c;它最大的优点是传输的可靠性&#xff0c;这通过面向连接、按序传输、超时重传、流量控制等机制保证其传输的可靠性。但这并不是我们今天要讨论的重点&#xff01; TCP通信的过程分别是三个阶段&#xff1a;建立连接、传输数据、关…