, 其合并两个数组时 , 不能在原数组中进行 ;
快速排序 , 始终都在原数组中进行 , 只涉及到交换数组中的元素 ;
正式由于该额外数组的存在 , 因此归并排序 , 并不是排序的最优算法 ;
算法要点...:
合并数组中 , 创建数组的时机 , 不要放在递归中 , 递归要调用很多次 , 频繁创建销毁数组 , 很耗费时间和空间 ;
代码示例 :
class Solution {
/**...;
// 递归调用排序算法
mergeSort(A, 0, A.length - 1, mergeArray);
}
// 将 array 数组中 start...int start, int end, int[] mergeArray) {
// 左右两个数组的遍历索引, 初值值为左右两侧的开始索引
int leftIndex =...mergeArray 数组中, 在将其设置到 array 数组中
for (int i = start; i <= end; i++) {
array[i] =