Search code examples
c#insertion-sort

Insertion Sorting c#


Can you guys please help me with basic insertion sorting in C#. I have a list of names and city of residence in a array and need to sort this array by comparing the city of residence. List has to be sorted in alphabetical order. Comparator has been set up and works I'm just kinda lost with the insertion sorter programming as this is the first time we are doing that method of sorting.

Here's what I've tried so far:

public void InsertionSort()
{
    for (int i = 0; i < Count; i++)
    {
        Student cur = Attendees[i];
        for (int j = 0; j < Count; j++)
        {
            Student Sel = Attendees[j];
            if (cur.CompareTo(Sel) < 0)
            {
                Student temp = Attendees[j];
                Attendees[j] = Attendees[i];
                for (int k = i; k > j; k--)
                    Attendees[k] = Attendees[k - 1];
                Attendees[k + 1] = temp;
            }
        }
    }
}

Solution

  • Try like this...

    public void InsertionSort()
    {
        for (int i = 0; i < Count; i++)
        {
            int j = i;
            While(j > 0)
            {
                Student cur = Attendees[j];
                Student sel = Attendees[j-1];
                if (cur.CompareTo(Sel) < 0)
                {
                    Student temp = cur;
                    cur = sel;
                    sel = temp;
                    j--
                }
                else
                    break;
            }
        }
    }