Я написал следующий метод, который сортирует массив, копируя самые большие значения в другой массив.Я хотел бы увидеть альтернативы этому подходу.например, подход, который меняет значения в самом первичном массиве, тем самым устраняя необходимость во вторичном массиве для копирования значений.
Я не хочу использовать предварительно написанные методы библиотеки .net, такие как Array.sort или т. Д., Поскольку моя главная цель - только попрактиковаться в написании алгоритмов.Слабые стороны приведенного ниже кода и его недостатки и то, как его можно улучшить, будут высоко оценены.
спасибо
private static void sortArray(int[] array)
{
int[] sorted = new int[array.Length];
int curMax = 0;
int bigIndex = 0;
for (int i = 0; i < array.Length; i++)
{
for (int j = 0; j < array.Length; j++)
{
if (array[j] > curMax)
{
bigIndex = j;
curMax = array[j];
}
}
sorted[i] = array[bigIndex];
array[bigIndex] = 0;
curMax = 0;
}
}
пример пузырьковой сортировки:
private static void sortArray(int[] array)
{
bool lastExchange;
do
{
lastExchange = false;
for (int i = 1; i < array.Length; i++)
{
if (array[i - 1] > array[i])
{
lastExchange = true;
int temp = array[i - 1];
array[i - 1] = array[i];
array[i] = temp;
}
}
} while (lastExchange);
}