{ "cells": [ { "cell_type": "markdown", "id": "d352b9f0-e16e-48cb-b28f-ce3014a2fdc7", "metadata": {}, "source": [ "## When is a hashmap cheaper than a list?" ] }, { "cell_type": "code", "execution_count": 30, "id": "730d1fb1-5c50-48b1-ad9e-291bc5ae490d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total runtime: 0.72s\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import timeit\n", "import numpy as np\n", "from random import randint\n", "import matplotlib.pyplot as plt\n", "\n", "\n", "tic = timeit.default_timer()\n", "\n", "n_max_elems = 500\n", "\n", "\n", "meas_list = np.zeros(n_max_elems)\n", "meas_hm = np.zeros(n_max_elems)\n", "\n", "for i in range(n_max_elems):\n", " l = list(np.random.permutation([float(j) for j in range(i+1)]))\n", " h = {j:0 for j in l}\n", " #idx = randint(0,i)\n", " \n", " dt_acc = 0.0\n", " for j in range(i):\n", " tic_list = timeit.default_timer()\n", " value_list = float(j) in l\n", " toc_list = timeit.default_timer()\n", " dt_list = toc_list - tic_list\n", " dt_acc += dt_list\n", " meas_list[i] = dt_acc / (i+1) \n", " \n", " dt_acc = 0.0\n", " for j in range(i):\n", " tic_hm = timeit.default_timer()\n", " value_hm = float(j) in h\n", " toc_hm = timeit.default_timer()\n", " dt_hm = toc_hm - tic_hm\n", " dt_acc += dt_hm\n", " meas_hm[i] = dt_acc / (i+1)\n", " \n", "toc = timeit.default_timer()\n", "print(f\"Total runtime: {toc-tic:.2}s\")\n", "\n", "\n", "plt.plot(meas_list, label=\"list\")\n", "plt.plot(meas_hm, label=\"hashmap\")\n", "plt.legend()\n", "plt.xlabel(\"collection size\")\n", "plt.ylabel(\"mean lookuptime in seconds\")\n", "plt.title(\"Mean of existency lookups for every element vs size\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "f358b7a6-1203-44e8-9192-d3fd56c796e9", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.8" } }, "nbformat": 4, "nbformat_minor": 5 }