c#像指针一样处理数组

时间:2013-03-24 12:06:21

标签: c#

我正在尝试在c#中实现合并排序以尝试学习该语言。我在分割步骤中分割数组时遇到问题。我来自c背景,会做这样的事情:

void MergeSort(int array[], int size)
{
    if (size == 1) 
        return;
    MergeSort(array, size/2);
    MergeSort(array + size/2, size - size/2);
}

我的问题是,你能用c#做类似的事吗?我知道有采取和跳过方法,但这是最好的方法吗?

2 个答案:

答案 0 :(得分:9)

使用索引而不是指针。

void MergeSort(int[] array, int startIndex, int endIndex){
...
}

答案 1 :(得分:2)

也许您可以将要使用的索引传递给函数:

private static void MergeSort(int[] array, int size, int index) {
    if (size == 1) {
        return;
    }
    MergeSort(array, size / 2, index);
    MergeSort(array, size - size / 2, index + size / 2);
}