Если у меня есть массив строк, например
string[] names = {"John Doe", "Doe John", "Another Name", "Name Another"};
Как мне отсортировать этот массив, используя сортировку вставкой?
В Википедии есть несколько примеров: https://en.wikibooks.org/wiki/Algorithm_implementation/Sorting/Insertion_sort#C.23
static void InsertSort(IComparable[] array)
{
int i, j;
for (i = 1; i < array.Length; i++)
{
IComparable value = array[i];
j = i - 1;
while ((j >= 0) && (array[j].CompareTo(value) > 0))
{
array[j + 1] = array[j];
j--;
}
array[j + 1] = value;
}
}
и
static void InsertSort<T>(IList<T> list) where T : IComparable<T>
{
int i, j;
for (i = 1; i < list.Count; i++)
{
T value = list[i];
j = i - 1;
while ((j >= 0) && (list[j].CompareTo(value) > 0))
{
list[j + 1] = list[j];
j--;
}
list[j + 1] = value;
}
}
но, похоже, он не работает с моим массивом строк, если я не делаю что-то не так.
Я бы не побежал
InsertSort(names); // like so?