Skip to content

Instantly share code, notes, and snippets.

@gjhernandezp
Last active June 5, 2018 14:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save gjhernandezp/1f9592040406456f7dd7 to your computer and use it in GitHub Desktop.
Save gjhernandezp/1f9592040406456f7dd7 to your computer and use it in GitHub Desktop.
randomquicksortcompdist
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import random\n",
"import statistics\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def randomquicksort(alist,times):\n",
" comp = [0]\n",
" randomquicksorthelper(alist,0,len(alist)-1,comp)\n",
" times.append(comp[0])"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def randomquicksorthelper(alist,first,last,comp):\n",
" if first<last:\n",
"\n",
" r = randompartition(alist,first,last)\n",
" splitpoint = r[0]\n",
" tmp = comp.pop()\n",
" comp.append(tmp+r[1])\n",
" \n",
" randomquicksorthelper(alist,first,splitpoint-1,comp)\n",
" randomquicksorthelper(alist,splitpoint+1,last,comp)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def randompartition(alist,first,last):\n",
" \n",
" indxpiv = random.randint(first,last)\n",
" temp = alist[indxpiv]\n",
" alist[indxpiv] = alist[first]\n",
" alist[first] = temp\n",
" \n",
" pivotvalue = alist[first]\n",
" compspart = 0\n",
"\n",
" leftmark = first+1\n",
" rightmark = last\n",
"\n",
" done = False\n",
" while not done:\n",
"\n",
" while leftmark <= rightmark and alist[leftmark] <= pivotvalue:\n",
" leftmark = leftmark + 1\n",
" compspart = compspart + 1\n",
" compspart = compspart + 1\n",
"\n",
" while alist[rightmark] >= pivotvalue and rightmark >= leftmark:\n",
" rightmark = rightmark -1\n",
" compspart = compspart + 1\n",
" compspart = compspart + 1\n",
"\n",
" if rightmark < leftmark:\n",
" done = True\n",
" else:\n",
" temp = alist[leftmark]\n",
" alist[leftmark] = alist[rightmark]\n",
" alist[rightmark] = temp\n",
"\n",
" temp = alist[first]\n",
" alist[first] = alist[rightmark]\n",
" alist[rightmark] = temp\n",
"\n",
"\n",
" return rightmark,compspart"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def randomquicksorttimedistrib(s,r):\n",
" \n",
" # Create an array of 1 .. n \n",
" n=s\n",
" runs=r\n",
" x = []\n",
" for i in range(1,n+1):\n",
" x.append(n+1-i)\n",
" \n",
" # Run quicksort for each permutation\n",
" tlist =[]\n",
" for p in range(1,runs+1):\n",
" y = list(x)\n",
" randomquicksort(y,tlist)\n",
" \n",
" \n",
" plt.hist(tlist)\n",
" plt.title(\"Number of comparison of Quicksort for all permutaions\")\n",
" plt.xlabel(\"Comparisons of elements\")\n",
" plt.ylabel(\"Frequency\")\n",
" plt.show()\n",
" \n",
" print(\"n\",n)\n",
" print(\"runs\",runs)\n",
" print(\"mean\",statistics.mean(tlist))\n",
" print(\"stdev\",statistics.stdev(tlist))\n",
" print(\"min\",min(tlist))\n",
" print(\"max\",max(tlist))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x74f67b8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"n 100\n",
"runs 10000\n",
"mean 647.8568\n",
"stdev 58.04254118677732\n",
"min 522\n",
"max 960\n"
]
}
],
"source": [
"randomquicksorttimedistrib(100,10000)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment