Мне кажется, что это слишком неэффективно для сортировки вставкой. Большинство реализаций, которые я видел, будут иметь цикл while вместо моего второго цикла for. Наряду с этим также то, что эти циклы while завершатся, как только j в моем коде или эквивалент этого будет равен нулю или как только выполнится оператор my if, найденный в цикле for моего кода. Проблема в том, что всякий раз, когда я пытался реализовать подобный код, сортировка вставок не работала должным образом.
getVisitCount просто возвращает целое число веб-страницы класса. AL является списком ArrayList.
public void IS()
{
Console.WriteLine("Sorting ArrayList.");
for (int i = 1; i < AL.Count; i++)
{
for (int j = i; j > 0; j--)
{
Webpage EntryJ = (Webpage)AL[j];
Webpage EntryBefore = (Webpage)AL[j - 1];
if (EntryBefore.getVisitCount() < EntryJ.getVisitCount())
{
Webpage temp = EntryBefore;
AL[j - 1] = AL[j];
AL[j] = temp;
}
}
}