我有一个函数,它使用合并排序算法对给定的数组进行排序。该算法调用自己来解决问题。
public class MergeSort {
public static void mergeSort(int[][] arr, int left, int right) {
// merge two parts
merge(arr, left, mid, right);
// sort the left part
mergeSort(arr, left, mid);
// sort the right part
mergeSort(arr, mid, right);
}
}
如果我在类中封装arr
参数,我能达到性能吗?
public class MergeSort {
int[][] arr;
public void mergeSort(int left, int right) {
// merge two parts
merge(left, mid, right);
// sort the left part
mergeSort(left, mid);
// sort the right part
mergeSort(mid, right);
}
}
因此,arr
参数不会传递到堆栈。
1条答案
按热度按时间mec1mxoz1#
变量保留了一个从ram中引用的变量。在哪里定义它并不重要,如果你使用的是1字节的ram,那么在哪里都是一样的。
重要的是,如果开发人员想在程序中使用这个变量,他可以很容易地使用它,并将它与其他变量分开。
如果说为什么要用参数,就要理解为什么要用函数,最简单的函数就是把你写的代码和其他代码分开,方便访问这些代码,这就是参数存在的原因。