我们如何编写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);
}
}
答案 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)