/*
 * Copyright (C) 2014 Pedro Vicente Gómez Sánchez.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.github.pedrovgs.problem76;

import com.github.pedrovgs.sortingalgorithm.SortingAlgorithm;

/**
 * Given an array full of integers implement a insert sort algorithm to sort the content inside
 * the array.
 *
 * @author Pedro Vicente Gómez Sánchez.
 */
public class InsertionSort extends SortingAlgorithm {

}

@@ -924,10 +924,819 @@
 ithm %7B%0A%0A
+  /**%0A   * Insertion sort is a simple sorting algorithm that is relatively efficient for small lists and%0A   * mostly sorted lists, and often is used as part of more sophisticated algorithms. It works by%0A   * taking elements from the list one by one and inserting them in their correct position into a%0A   * new sorted list. In arrays, the new list and the remaining elements can share the array's%0A   * space, but insertion is expensive, requiring shifting all following elements over by one.%0A   */%0A  @Override public void sort(int%5B%5D numbers) %7B%0A    validateInput(numbers);%0A%0A    int i;%0A    for (i = 1; i %3C numbers.length; i++) %7B%0A      int tmp = numbers%5Bi%5D;%0A      int j = i;%0A      while (j %3E 0 && numbers%5Bj - 1%5D %3E tmp) %7B%0A        numbers%5Bj%5D = numbers%5Bj - 1%5D;%0A        j--;%0A      %7D%0A      numbers%5Bj%5D = tmp;%0A    %7D%0A  %7D%0A
 %7D%0A

Add solution to problem 76