Я выполняю это назначение для uni, и требование заключается в том, что я использую любой алгоритм сортировки для сортировки списка в алфавитном порядке (без учета регистра). В основном говорят, что если список содержит некоторые строки, например «a» «C» «b» «1» и «3», он будет сортировать его либо «1» «3» «a» «b» «C», a "" b "" C "" 1 "" 3 " Я знаю, как сортировать массив целых чисел (код ниже, используя сортировку обмена), но как использовать список строк вместо этого? Как изменить приведенный ниже код, чтобы отсортировать список строк по алфавиту, сохраняя при этом принципы обмена (в данном случае)?Алгоритм сортировки для сортировки списка строк (C#)
Примечание: Мне не разрешено использовать List<string>.Sort()
или какой-либо другой простой код.
// sort a vector of type int using exchange sort
public void ExchangeSort(int[] array)
{
int pass, i, n = array.Length;
int temp;
// make n-1 passes through the data
for (pass = 0; pass < n - 1; pass++)
{
// locate least of array[pass] ... array[n - 1]
// at array[pass]
for (i = pass + 1; i < n; i++)
{
if (array[i] < array[pass])
{
temp = array[pass];
array[pass] = array[i];
array[i] = temp;
}
}
}
}
Начнем с того, что происходит, когда вы меняете тип 'array' и' 'temp' в строку []' и 'string' соответственно? – Koterpillar
@ Koterpillar Основная проблема заключается в том, что вы не можете сравнивать строки, используя <. вот ошибка: http://www3.picturepush.com/photo/a/12433536/1024/Anonymous/WpfApplication2---Microsoft-Visual-Studio-%28Adminis.jpg –
Поэтому [String.Compare] (http:// /msdn.microsoft.com/en-us/library/system.string.compare.aspx), как в ответе @cHao. – Koterpillar