почему последние три элемента неправильно сортируются, повторяются?
static void Main(string[] args)
{
int[] numbers = new int[] { 14, 54, 31, 11, 78, 55, 44, 99, 23, 22 };
int[] newNumbers = new int[numbers.Length];
int size = numbers.Length;
for (int i = 0; i < numbers.Length; i++)
{
newNumbers[i] = RemoveNumbers(numbers, ref size);
}
for (int i = 0; i < numbers.Length; i++)
{
Console.Write(newNumbers[i] + " ");
}
}
public static int RemoveNumbers(int[] numbers, ref int size)
{
int i;
int max = numbers.Max();
//Находим индекс максимального числа
for (i = 0; i < size; i++)
{
if (numbers[i] == max)
break;
}
//убираем максимальное число сдвигом
for (int j = i; j <= size; j++)
{
if (j+1 < size)
numbers[j] = numbers[j + 1];
}
//уменьшаем размер массива
size--;
return max;
}
Источник: Stack Overflow на русском