      "collapsed": false
     },
     "outputs": [],
     "source": [
      "def selection_sort_recursive(data, start):\n",
      "    if start < len(data) - 1:\n",
      "        swap(data, start, find_min_index(data, start))\n",
      "        selection_sort_recursive(data, start+1)\n",
      "\n",
      "print('Empty input')\n",
 
</s> remove     "        selection_sort_recursive(data, start+1)\n",
    "\n",
    "print('Empty input')\n",
    "data = []\n",
    "selection_sort_recursive(data, 0)\n",
    "print(data)\n",
    "print('One element')\n",
    "data = [5]\n",
    "selection_sort_recursive(data, 0)\n",
    "print(data)\n",
    "print('Two or more elements')\n",
    "data = [5, 1, 7, 2, 6, -3, 5, 7, -1]\n",
    "selection_sort_recursive(data, 0)\n",
    "print(data)"
 </s> add     "        selection_sort_recursive(data, start+1)" </s> remove    "execution_count": null,
 </s> add    "execution_count": 3, </s> remove    "execution_count": null,
 </s> add    "execution_count": 2, </s> remove    "execution_count": null,
 </s> add    "execution_count": 1, </s> remove     "## Clarifying Questions\n",
 </s> add     "## Constraints and Assumptions\n",
    "def selection_sort_recursive(data, start=0):\n",
      "collapsed": false
     },
     "outputs": [],
     "source": [
    "def selection_sort_recursive(data, start=0):\n",
      "    if start < len(data) - 1:\n",
      "        swap(data, start, find_min_index(data, start))\n",
      "        selection_sort_recursive(data, start+1)\n",
      "\n",
      "print('Empty input')\n",
keep keep keep keep replace keep keep keep keep keep
 Reworked notebook: Added more detail to constraints and test cases.  Reworked code and unit test. 
sorting-searching/selection-sort.ipynb