      "* Is a naive solution sufficient (ie not in-place)?\n",
      "    * Yes\n",
      "* Are duplicates allowed?\n",
      "    * Yes"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
 
</s> remove     "* Is a naiive solution sufficient (ie not in-place)?\n",
 </s> add     "* Is a naive solution sufficient (ie not in-place)?\n", </s> remove     "def quick_sort(data):\n",
    "    # TODO: Implement me\n",
    "    pass"
 </s> add     "class QuickSort(object):\n",
    "\n",
    "    def sort(self, data):\n",
    "        # TODO: Implement me\n",
    "        pass" </s> remove     "* None -> None\n",
 </s> add     "* None -> Exception\n", </s> remove     "    test.test_quick_sort(quick_sort)\n",
 </s> add     "    test.test_quick_sort()\n", </s> remove     "    test.test_quick_sort(quick_sort)\n",
 </s> add     "    test.test_quick_sort()\n",
    "    * Yes\n",
    "* Can we assume the input is valid?\n",
    "    * No\n",
    "* Can we assume this fits memory?\n",
      "* Is a naive solution sufficient (ie not in-place)?\n",
      "    * Yes\n",
      "* Are duplicates allowed?\n",
    "    * Yes\n",
    "* Can we assume the input is valid?\n",
    "    * No\n",
    "* Can we assume this fits memory?\n",
      "    * Yes"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
keep keep add keep keep keep keep keep keep
 Update quicksort challenge (#134)

Update constraints, test cases, code, algorithm, and tests. 
sorting_searching/quick_sort/quick_sort_challenge.ipynb