c#方法排序数组而不使用任何循环

时间:2016-04-05 04:36:47

标签: java c#

我们如何编写c-sharp方法或java方法来对数组进行排序而不使用任何循环,我尝试了以下但不能正常工作。

public static void sortArray(int[] array)
{
        int index = 0;
        int temp = 0;
        if (index < array.Length - 1)
        {
            if (array[index] > array[index + 1])
            {
                temp = array[index];
                array[index] = array[index + 1];
                array[index + 1] = temp;
            }



            index++;
            sortArray(array, index);

        }


    }

2 个答案:

答案 0 :(得分:2)

解决方案有点棘手,但最终有效 C#代码:

public static void sortArray(int[] array, int index)
{
    if (index < array.Length - 1)
    {
        if (array[index] > array[index + 1])
        {
            var temp = array[index];
            array[index] = array[index + 1];
            array[index + 1] = temp;
        }
        if (index > 0 && array[index] < array[index - 1]) sortArray(array, index - 1);
        else sortArray(array, index + 1);
    }
}

用法:

int[] arr = { 3000, 2000, 1000, 800, 100, 500, 200, 6, 8, 7, 17, 78, 22, };
sortArray(arr, 0);

此方法就地对数组进行排序,因此arr本身将被排序。

答案 1 :(得分:0)

如果 c#,您可以使用Array类对数组进行排序,

 Array.Sort(array);

Java 中也是如此,您可以使用Arrays类对此类array进行排序

Arrays.sort(array);