排序写题解
不限
栈
排序
递归
数组
链表
双指针
二分查找
C
C++
C#
Go
Java
JavaScript
PHP
Python
Python3
Ruby
Rust
Scala
Swift
不问租房
优先队列
数组结构
指针科技
java数组
快速排序
指针
归并排序
递归算法
cpp
归并
快排
Java
方法一:直接合并后排序 算法 最直观的方法是先将数组 $B$ 放进数组 $A$ 的尾部,然后直接对整个数组进行排序。 C++ [sol1-C++] class Solution { public: void merge(vector& A, int m, vector& B, int n)
33.4k
解题思路 每次从A和B中选择最大的数字(此处A,B中最大的,不包括新插入的数据),在A的尾部从后往前插入。 以此来避免选择最小的数字,再从A的开端从前往后插入数据,所造成的数据覆盖的麻烦。 代码
解题思路 因为 A 中的数字都集中在前 m - 1 的位置,所以 A 的空间都集中在后面,所以从后向前处理排序的数据会更好,能够节省空间。 A 和B都从后往前进行遍历(每次选两者中较大值,不会将 A 中原有元素覆盖掉): 若i