     },
     "outputs": [],
     "source": [
      "def find_min_index(data, start):\n",
      "    min_index = start\n",
      "    for i in range(start + 1, len(data)):\n",
      "        if data[i] < data[min_index]:\n",
      "            min_index = i\n",
 
</s> remove     "    for i in range(0, len(data) - 1):\n",
 </s> add     "    for i in range(len(data)-1):\n", </s> remove     "        data = [5, 1, 7, 2, 6, -3, 5, 7, -1]\n",
 </s> add     "        data = [5, 1, 7, 2, 6, -3, 5, 7, -10]\n", </s> remove     "* Space: O(1) iterative, O(n) recursive (unless tail-call elimination is available, then O(1)), generally not stable\n",
 </s> add     "* Space: O(1) iterative, O(m) recursive where m is the recursion depth (unless tail-call elimination is available, then O(1)), generally not stable\n",
    "    # Raises an exception if: \n",
    "    # -data is None\n",
    "    # -start >= len(data) - 1\n",
     },
     "outputs": [],
     "source": [
      "def find_min_index(data, start):\n",
    "    # Raises an exception if: \n",
    "    # -data is None\n",
    "    # -start >= len(data) - 1\n",
      "    min_index = start\n",
      "    for i in range(start + 1, len(data)):\n",
      "        if data[i] < data[min_index]:\n",
      "            min_index = i\n",
keep keep keep add keep keep keep keep
 Polish selection sort challenge and solution

Update constraints, algorithm, code, and test. 
sorting_searching/selection_sort/selection_sort_solution.ipynb