Your task is to write a method called InsertionSort, which takes an array of integers and sorts them into ascending order:

public static void InsertionSort(int[] array)

Do not use Array.Sort or other predefined sorting methods that are part of the .NET framework to implement this method. This method should be written from scratch.

The pseudocode is reproduced here for your convenience:

sorted length is 1 // list of single element is already sorted
while sorted length < length of list
let newItem = first element of unsorted part

// insert newItem in its correct position by
// moving all the items greater than newItem up one position

let currentPos = start of unsorted part
while currentPos > 0 and item at currentPos-1 > newItem
move the item at currentPos-1 up one position
decrement currentPos
end while

// insert newItem in the “vacant” position
item at currentPos = newItem
increment sorted length
end while

If the pseudocode is confusing read the rest of the lecture slides about Insertion Sort first, to ensure you have a good grasp of the algorithm before you attempt to start implementing it.

The provided Main() method contains a simple test for your InsertionSort(), and should produce the following output:

Note that the Main() method of the provided code is never called- only the InsertionSort() method is called in order to test your program. This also means your InsertionSort() method must be public.

If you still have difficulties, here are some tips when writing programs for AMS:

Do not write your program directly into the text box. You should copy and paste the sample code into Visual Studio, write your program there, run it and test it to make sure it works, then paste it into AMS. You only get a limited number of attempts at each AMS exercise, so make sure they count.

Sample code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InsertionSort
{
class Program
{
public static void InsertionSort(int[] array)
{
// Write your insertion sort algorithm here
}
static void Main(string[] args)
{
int[] array = { 1, 2, 6, 3, 4 };
InsertionSort(array);
for (int i = 0; i < array.Length; i++)
{
if (i > 0) {
Console.Write(", ");
}
Console.Write("{0}", array[i]);
}
Console.WriteLine("nnPress enter to exit.");
Console.ReadLine();
}
}
}
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.