1

所以我有一个快速排序算法,我必须将我的整数数组分成两部分,然后递归调用这两个数组。

partition(array,lower);
partition(&array[lower + 1], array.Length - lower - 1);

但是即使我尝试将不安全的代码添加到分区类,c# 也不会接受该代码,所以我想知道必须做些什么才能使其正常工作?

也许我可以在不使用指针的情况下修复它,但我想学习,所以每次遇到这样的问题时,我都不必为它更改整个代码。

4

3 回答 3

2

林克呢?

array.Take(lower);
array.Skip(lower);

你会喜欢的

于 2013-03-03T19:29:42.450 回答
1

轻松创建SubArray的方法Array

    private static void Main()
    {

        int[] array = Enumerable.Range(1, 10).ToArray();
        int lower = 5;
        int[] array1 = array.SubArray(0, lower);
        int[] array2 = array.SubArray(lower, array.Length - lower);
    }

    public static T[] SubArray<T>(this T[] source, int sourceIndex, int length)
    {
        T[] result = new T[length];
        Array.Copy(source, sourceIndex, result, 0, length);
        return result;
    }
于 2013-03-03T19:34:17.120 回答
0

要使用不安全的代码,您需要两件事:

  1. unsafe用关键字标记不安全的代码(正如你所说的那样)
  2. 通过配置适当的设置将项目编译为不安全
于 2013-03-03T19:26:00.547 回答