Insertion Sort Code

            // C++ program for insertion sort
            #include 
            using namespace std;

            // Function to sort an array using
            // insertion sort
            void insertionSort(int arr[], int n)
            {
              int i, key, j;
              for (i = 1; i < n; i++)
              {
                key = arr[i];
                j = i - 1;

                // Move elements of arr[0..i-1],
                // that are greater than key, to one
                // position ahead of their
                // current position
                while (j >= 0 && arr[j] > key)
                {
                  arr[j + 1] = arr[j];
                  j = j - 1;
                }
                arr[j + 1] = key;
              }
            }

            // A utility function to print an array
            // of size n
            void printArray(int arr[], int n)
            {
              int i;
              for (i = 0; i < n; i++)
                cout << arr[i] << " ";
              cout << endl;
            }

            // Driver code
            int main()
            {
              int arr[] = { 12, 11, 13, 5, 6 };
              int N = sizeof(arr) / sizeof(arr[0]);

              insertionSort(arr, N);
              printArray(arr, N);

              return 0;
            }
            
            # Python program for implementation of Insertion Sort
            def insertionSort(arr):

              # Traverse through 1 to len(arr)
              for i in range(1, len(arr)):

                key = arr[i]

                # Move elements of arr[0..i-1], that are
                # greater than key, to one position ahead
                # of their current position
                j = i-1
                while j >= 0 and key < arr[j] :
                    arr[j + 1] = arr[j]
                    j -= 1
                arr[j + 1] = key


            # Driver code to test above
            arr = [12, 11, 13, 5, 6]
            insertionSort(arr)
            for i in range(len(arr)):
              print ("% d" % arr[i])
            
            // Java program for implementation of Insertion Sort
            class InsertionSort
            {
              /*Function to sort array using insertion sort*/
              void sort(int arr[])
              {
                int n = arr.length;
                for (int i = 1; i < n; ++i) {
                  int key = arr[i];
                  int j = i - 1;

                  // Move elements of arr[0..i-1], that are
                  // greater than key, to one position ahead
                  // of their current position
                  while (j >= 0 && arr[j] > key) {
                    arr[j + 1] = arr[j];
                    j = j - 1;
                  }
                  arr[j + 1] = key;
                }
              }

              /* A utility function to print array of size n*/
              static void printArray(int arr[])
              {
                int n = arr.length;
                for (int i = 0; i < n; ++i)
                  System.out.print(arr[i] + " ");

                System.out.println();
              }

              // Driver method
              public static void main(String args[])
              {
                int arr[] = { 12, 11, 13, 5, 6 };

                InsertionSort ob = new InsertionSort();
                ob.sort(arr);

                printArray(arr);
              }
            }