{ "cells": [ { "cell_type": "code", "execution_count": 3, "id": "eb4e80c4", "metadata": {}, "outputs": [], "source": [ "# singly-linked list data structure\n", "#\n", "class LinkedList:\n", "\n", " # initial values for the properties of an empty LinkedList object\n", " #\n", " # they begin with an understore to mark that they should not\n", " # be accessed directly from outside, only through methods\n", " #\n", " def __init__(self):\n", " self._head = None\n", " self._tail = None\n", " \n", " # inserts an additional item at the head of the list\n", " #\n", " def push_front(self, value):\n", " new_node = LinkedListNode()\n", " new_node.set_item(value)\n", " if self.is_empty():\n", " self._tail = new_node # if the list is empty, the new node also becomes its tail\n", " new_node.set_next(self._head) # the old head is attached to the new element\n", " self._head = new_node # the new node now becomes the new head of the list\n", " \n", " # insert an item right after a given node;\n", " # precondition/contract: the node must belong to the present list\n", " #\n", " def push_after(self, node, value):\n", " new_node = LinkedListNode()\n", " if not node.has_next(): # check whether we are inserting at the end of the list\n", " self._tail = new_node # if that is the case, the new node becomes the tail of the list\n", " new_node.set_item(value)\n", " new_node.set_next(node.get_next())\n", " node.set_next(new_node)\n", " \n", " # inserts an additional item at the end of the list\n", " #\n", " def push_back(self, value):\n", " if not self.is_empty():\n", " self.push_after(self._tail, value)\n", " else:\n", " self.push_front(value)\n", " \n", " # removes the head element from the list, returning its value\n", " #\n", " def pop_front(self):\n", " old_head_value = self._head.get_item() # access value of the old head element\n", " new_head_node = self._head.get_next()\n", " self._head.set_next(None) # detach the head from the list (not strictly required)\n", " self._head = new_head_node # designate its previous successor as the new head node\n", " return old_head_value\n", " \n", " # removes the successor element of a given node from the list, returning its value;\n", " # precondition/contract: the node must belong to the present list\n", " #\n", " def pop_after(self, node):\n", " if node.has_next():\n", " old_successor_node = node.get_next()\n", " if old_successor_node.has_next():\n", " new_successor_node = old_successor_node.get_next()\n", " old_successor_node.set_next(None) # detach the previous successor from the list\n", " node.set_next(new_successor_node)\n", " else:\n", " node.set_next(None)\n", " self._tail = node # node becomes the tail element after the previous tail was detached\n", " return old_successor_node.get_item()\n", " else:\n", " return None\n", " \n", " # deleting the content would be feasible just by setting head and tail to None\n", " # for better consistency, we also detach all the nodes, which is not strictly necessary\n", " #\n", " def clear(self):\n", " while not self.is_empty():\n", " self.pop_front()\n", "\n", " # states whether the list is empty\n", " #\n", " def is_empty(self):\n", " return (self._head is None)\n", " \n", " # returns the first node of the list\n", " #\n", " def get_head(self):\n", " return self._head\n", "\n", " # return the number of elements in the linked list\n", " #\n", " def length(self):\n", " if self.is_empty():\n", " return 0\n", " iterator = self._head\n", " nodes = 1\n", " while iterator.has_next():\n", " iterator = iterator.get_next()\n", " nodes += 1\n", " return nodes\n", "\n", " # returns a string representation of the list, for printing output\n", " #\n", " def string(self):\n", " out = \"<\"\n", " if not self.is_empty():\n", " iterator = self._head\n", " while iterator.has_next():\n", " out = out + str(iterator.get_item()) + \"; \"\n", " iterator = iterator.get_next()\n", " out = out + str(iterator.get_item())\n", " out = out + \">\"\n", " return out\n", " \n", " # replaces the content of self with the content of a dyn. array (Python list)\n", " #\n", " def copy_from_dynarray(self, dynarray):\n", " self.clear() # remove all previous content from the linked list\n", " for el in dynarray:\n", " self.push_back(el) # insert content of the Python list as new content of self\n", "\n", " # replaces the contant of a dyn. array (Python list) with the content of self\n", " #\n", " def copy_into_dynarray(self, dynarray):\n", " dynarray.clear()\n", " iterator = self._head\n", " data_left = True\n", " while data_left:\n", " dynarray.append(iterator.get_item())\n", " if iterator.has_next():\n", " iterator = iterator.get_next()\n", " else:\n", " data_left = False\n", "\n", "# node in a singly-linked list\n", "#\n", "class LinkedListNode:\n", " def __init__(self):\n", " self._item = None\n", " self._next = None\n", " \n", " def set_item(self, value):\n", " self._item = value\n", " def set_next(self, next_node):\n", " self._next = next_node\n", " \n", " def get_item(self):\n", " return self._item\n", " def get_next(self):\n", " return self._next\n", " \n", " # returns True if there is a next element, false if the next\n", " # element is None, i.e., if we are at the end of the list\n", " #\n", " def has_next(self):\n", " return (self._next is not None)" ] }, { "cell_type": "code", "execution_count": 4, "id": "5c89bedc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "random_dynarray: [24, 8, 12, 8, 9]\n", "linked_list_copy: <24; 8; 12; 8; 9>\n", "length of linked list: 5\n" ] } ], "source": [ "import random\n", "\n", "random_dynarray = [random.randrange(25) for i in range(5)]\n", "print(\"random_dynarray:\", random_dynarray)\n", "\n", "linked_list_copy = LinkedList()\n", "linked_list_copy.copy_from_dynarray(random_dynarray)\n", "print(\"linked_list_copy:\", linked_list_copy.string())\n", "print(\"length of linked list:\", linked_list_copy.length())" ] }, { "cell_type": "code", "execution_count": 5, "id": "5867b8c4", "metadata": {}, "outputs": [], "source": [ "# Problem/task:\n", "#\n", "# For each element (el) of a list, determine its value modulo three (el % 3),\n", "# and replace it with el % 3 copies of itself, adjacent to each other\n", "#\n", "# Precondition: The argument is a list (Python list or linked list, respectively) of integer numbers\n", "#\n", "# In other words, multiples of three are deleted, values of the type 3k+1 are unchanged,\n", "# and values of the type 3k+2 are copied so that they occur twice, next to each other\n", "#\n", "# For example, [4, 11, 8, 9, 20] should become [4, 11, 11, 8, 8, 20, 20]\n", "\n", "# Implementation for a Python list (dynamic array)\n", "#\n", "def mod3_copying_dynarray(dynarray):\n", " # note that the length of the list changes during this operation;\n", " # we need the index no. for inserting elements in the middle;\n", " # therefore a loop over range(...) will be inappropriate\n", " #\n", " i = 0\n", " while i < len(dynarray):\n", " if dynarray[i] % 3 == 0:\n", " dynarray.pop(i) # multiple of 3, remove from list\n", " elif dynarray[i] % 3 == 2:\n", " dynarray.insert(i+1, dynarray[i]) # insert a copy of the present value\n", " i += 2 # jump two forward, to the next value\n", " else:\n", " i += 1 # do nothing, proceed to the next value\n", "\n", "def mod3_copying_linked_list(linked_list):\n", " if linked_list.is_empty():\n", " return\n", " #\n", " # special treatment for the head element\n", " #\n", " # why is that necessary? the singly linked list distinguishes\n", " # \"pop_after\" and \"push_after\" from \"pop_front\" and \"push_front\"\n", " #\n", " iterator = linked_list.get_head()\n", " while iterator.get_item() % 3 == 0:\n", " linked_list.pop_front()\n", " iterator = linked_list.get_head()\n", " if iterator.get_item() % 3 == 2:\n", " linked_list.push_front(iterator.get_item())\n", " #\n", " # now traverse the remainder of the list\n", " #\n", " while iterator.has_next():\n", " previous_node = iterator # for \"pop_after\", to detach the present element, we need the previous node\n", " iterator = iterator.get_next()\n", " if iterator.get_item() % 3 == 0:\n", " linked_list.pop_after(previous_node)\n", " iterator = previous_node\n", " elif iterator.get_item() % 3 == 2:\n", " linked_list.push_after(iterator, iterator.get_item())\n", " iterator = iterator.get_next()" ] }, { "cell_type": "code", "execution_count": 11, "id": "36391e0b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "random_dynarray: [16, 16, 22, 24, 12]\n", "linked_list_copy: <16; 16; 22; 24; 12>\n", "\n", "*** now running the mod-3 copy functions ***\n", "\n", "new status of dyn. array: [16, 16, 22]\n", "new status of linked list: <16; 16; 22>\n" ] } ], "source": [ "import random\n", "\n", "random_dynarray = [random.randrange(25) for i in range(5)]\n", "print(\"random_dynarray:\", random_dynarray)\n", "\n", "linked_list_copy = LinkedList()\n", "linked_list_copy.copy_from_dynarray(random_dynarray)\n", "print(\"linked_list_copy:\", linked_list_copy.string())\n", "\n", "print(\"\\n*** now running the mod-3 copy functions ***\\n\")\n", "\n", "mod3_copying_dynarray(random_dynarray)\n", "mod3_copying_linked_list(linked_list_copy)\n", "print(\"new status of dyn. array:\", random_dynarray)\n", "print(\"new status of linked list:\", linked_list_copy.string())" ] }, { "cell_type": "code", "execution_count": 92, "id": "091bf754", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\t8.463859558105468e-07\t6.67572021484375e-07\t0.0\t0.0\n", "50\t1.245737075805664e-05\t6.177425384521485e-05\t50.3\t50.3\n", "100\t2.0325183868408203e-05\t0.00010002851486206055\t96.65\t96.65\n", "150\t3.763437271118164e-05\t0.0002047419548034668\t150.95\t150.95\n", "200\t7.393360137939454e-05\t0.0003777742385864258\t198.3\t198.3\n", "250\t5.340576171875e-05\t0.00024890899658203125\t249.0\t249.0\n", "300\t9.753704071044922e-05\t0.0004511833190917969\t301.4\t301.4\n", "350\t9.307861328125e-05\t0.0004212379455566406\t351.55\t351.55\n", "400\t9.397268295288085e-05\t0.00042210817337036134\t403.95\t403.95\n", "450\t0.00010510683059692383\t0.000457310676574707\t448.8\t448.8\n", "500\t0.00012682676315307618\t0.0005144119262695312\t497.75\t497.75\n", "550\t0.00013239383697509765\t0.0005172252655029297\t552.6\t552.6\n", "600\t0.00015431642532348633\t0.0006274223327636719\t598.65\t598.65\n", "650\t0.00018724203109741211\t0.000739753246307373\t648.9\t648.9\n", "700\t0.0001826047897338867\t0.0006865620613098145\t695.0\t695.0\n", "750\t0.00019485950469970702\t0.0007369041442871094\t749.05\t749.05\n", "800\t0.00021898746490478516\t0.0007843017578125\t801.25\t801.25\n", "850\t0.0002983450889587402\t0.000939035415649414\t847.7\t847.7\n", "900\t0.00026808977127075196\t0.0009516119956970215\t903.15\t903.15\n", "950\t0.0002707004547119141\t0.0009205222129821777\t954.0\t954.0\n", "1000\t0.00028668642044067384\t0.001022934913635254\t1007.15\t1007.15\n", "1050\t0.0003531336784362793\t0.0010893583297729493\t1044.85\t1044.85\n", "1100\t0.0003300189971923828\t0.0010846734046936035\t1086.15\t1086.15\n", "1150\t0.0003462314605712891\t0.0011501908302307129\t1143.4\t1143.4\n", "1200\t0.00042268037796020506\t0.001347219944000244\t1199.25\t1199.25\n", "1250\t0.00043756961822509765\t0.0014747262001037597\t1258.15\t1258.15\n", "1300\t0.00043865442276000974\t0.0014696359634399415\t1281.1\t1281.1\n", "1350\t0.00045900344848632814\t0.0015539169311523438\t1344.55\t1344.55\n", "1400\t0.0004778861999511719\t0.0014745235443115235\t1403.9\t1403.9\n", "1450\t0.00048644542694091796\t0.001412677764892578\t1451.7\t1451.7\n", "1500\t0.0005265235900878906\t0.0014927029609680177\t1515.95\t1515.95\n", "1550\t0.0005264043807983399\t0.001484060287475586\t1553.55\t1553.55\n", "1600\t0.0005656361579895019\t0.0016494989395141602\t1604.6\t1604.6\n", "1650\t0.0005640745162963867\t0.0016053199768066406\t1659.1\t1659.1\n", "1700\t0.0005914688110351563\t0.0016694188117980957\t1714.35\t1714.35\n", "1750\t0.0006406426429748536\t0.0017625927925109864\t1731.95\t1731.95\n", "1800\t0.0006386756896972657\t0.001733100414276123\t1803.3\t1803.3\n", "1850\t0.0006850361824035645\t0.0017816424369812012\t1851.05\t1851.05\n", "1900\t0.0007035851478576661\t0.0018208861351013184\t1895.3\t1895.3\n", "1950\t0.0007291436195373535\t0.0018561959266662597\t1956.45\t1956.45\n", "2000\t0.0007918119430541992\t0.001999306678771973\t1996.8\t1996.8\n", "2050\t0.00085601806640625\t0.0021564006805419923\t2059.8\t2059.8\n", "2100\t0.0008154630661010743\t0.0020787954330444337\t2096.55\t2096.55\n", "2150\t0.0008657217025756836\t0.002278852462768555\t2136.2\t2136.2\n", "2200\t0.0009494185447692871\t0.0024297356605529783\t2198.35\t2198.35\n", "2250\t0.0010044336318969726\t0.002550375461578369\t2258.85\t2258.85\n", "2300\t0.0009574413299560547\t0.002298891544342041\t2295.0\t2295.0\n", "2350\t0.0009807825088500976\t0.002467525005340576\t2355.65\t2355.65\n", "2400\t0.0010155677795410157\t0.0023269414901733398\t2396.0\t2396.0\n", "2450\t0.0010577917098999023\t0.0025984883308410645\t2455.55\t2455.55\n", "2500\t0.0010532736778259277\t0.0025284290313720703\t2481.75\t2481.75\n", "2550\t0.001227259635925293\t0.0030982494354248047\t2534.85\t2534.85\n", "2600\t0.0013532400131225585\t0.0029929518699645997\t2598.35\t2598.35\n", "2650\t0.0012044191360473632\t0.0029762625694274903\t2646.75\t2646.75\n", "2700\t0.0015663385391235351\t0.0033000588417053224\t2699.55\t2699.55\n", "2750\t0.0012681365013122558\t0.002729761600494385\t2748.6\t2748.6\n", "2800\t0.0013632655143737793\t0.0030274152755737304\t2790.6\t2790.6\n", "2850\t0.0013863921165466308\t0.0029483795166015624\t2867.1\t2867.1\n", "2900\t0.0013542294502258301\t0.0027947425842285156\t2906.85\t2906.85\n", "2950\t0.0013503909111022949\t0.0028201580047607423\t2946.8\t2946.8\n", "3000\t0.0014307260513305663\t0.00307239294052124\t2999.0\t2999.0\n", "3050\t0.0014953017234802246\t0.003230464458465576\t3048.55\t3048.55\n", "3100\t0.001497042179107666\t0.0030344247817993162\t3099.0\t3099.0\n", "3150\t0.0016411066055297852\t0.0032853603363037108\t3156.15\t3156.15\n", "3200\t0.0016515254974365234\t0.0033659100532531737\t3204.5\t3204.5\n", "3250\t0.0016458988189697265\t0.003530895709991455\t3226.2\t3226.2\n", "3300\t0.0016756534576416015\t0.0033146977424621583\t3298.05\t3298.05\n", "3350\t0.001684284210205078\t0.0032693266868591307\t3341.15\t3341.15\n", "3400\t0.0017878413200378418\t0.0037088394165039062\t3398.9\t3398.9\n", "3450\t0.0018646955490112306\t0.0036440491676330566\t3443.85\t3443.85\n", "3500\t0.0020749449729919435\t0.004163193702697754\t3494.45\t3494.45\n", "3550\t0.002010667324066162\t0.003877854347229004\t3555.6\t3555.6\n", "3600\t0.0020650625228881836\t0.0039370179176330565\t3589.0\t3589.0\n", "3650\t0.0019960284233093263\t0.003622913360595703\t3653.75\t3653.75\n", "3700\t0.0023047924041748047\t0.004220414161682129\t3704.8\t3704.8\n", "3750\t0.002217304706573486\t0.004110610485076905\t3734.3\t3734.3\n", "3800\t0.0021012067794799806\t0.003899288177490234\t3792.05\t3792.05\n", "3850\t0.002329421043395996\t0.004579532146453858\t3855.1\t3855.1\n", "3900\t0.0022306442260742188\t0.0039351582527160645\t3905.65\t3905.65\n", "3950\t0.0022526025772094727\t0.003995430469512939\t3952.45\t3952.45\n", "4000\t0.00231550931930542\t0.004173791408538819\t4007.75\t4007.75\n", "4050\t0.0023657560348510744\t0.004335856437683106\t4019.35\t4019.35\n", "4100\t0.002438473701477051\t0.004310810565948486\t4094.25\t4094.25\n", "4150\t0.0026156783103942873\t0.004641485214233398\t4166.6\t4166.6\n", "4200\t0.0027872443199157713\t0.0047997117042541506\t4203.75\t4203.75\n", "4250\t0.002595973014831543\t0.004438579082489014\t4262.5\t4262.5\n", "4300\t0.00266873836517334\t0.004501628875732422\t4300.0\t4300.0\n", "4350\t0.0028355956077575684\t0.004715538024902344\t4353.15\t4353.15\n", "4400\t0.003089416027069092\t0.005343842506408692\t4415.8\t4415.8\n", "4450\t0.0027718544006347656\t0.004539132118225098\t4459.0\t4459.0\n", "4500\t0.003289651870727539\t0.005325186252593994\t4487.1\t4487.1\n", "4550\t0.00292280912399292\t0.004641902446746826\t4540.3\t4540.3\n", "4600\t0.003092539310455322\t0.005004501342773438\t4618.4\t4618.4\n", "4650\t0.0030562996864318846\t0.00486140251159668\t4656.25\t4656.25\n", "4700\t0.003099215030670166\t0.0048444151878356935\t4680.85\t4680.85\n", "4750\t0.0032513618469238283\t0.00515366792678833\t4747.6\t4747.6\n", "4800\t0.0033652424812316895\t0.005298411846160889\t4794.25\t4794.25\n", "4850\t0.003468811511993408\t0.005375754833221435\t4858.05\t4858.05\n", "4900\t0.0036969780921936035\t0.005649590492248535\t4899.7\t4899.7\n", "4950\t0.003483307361602783\t0.0052279472351074215\t4977.85\t4977.85\n", "5000\t0.003598475456237793\t0.005386579036712647\t4991.1\t4991.1\n", "5050\t0.0035650134086608887\t0.005219054222106933\t5047.35\t5047.35\n", "5100\t0.0035501837730407713\t0.005112755298614502\t5106.45\t5106.45\n", "5150\t0.0036328673362731934\t0.005376565456390381\t5144.05\t5144.05\n", "5200\t0.0036385178565979002\t0.0052027106285095215\t5201.0\t5201.0\n", "5250\t0.0037187695503234862\t0.0053632259368896484\t5260.9\t5260.9\n", "5300\t0.0038201570510864257\t0.005670869350433349\t5274.55\t5274.55\n", "5350\t0.0038870573043823242\t0.005605852603912354\t5347.3\t5347.3\n", "5400\t0.0038372159004211428\t0.005331671237945557\t5372.65\t5372.65\n", "5450\t0.0038783907890319823\t0.005368006229400635\t5422.1\t5422.1\n", "5500\t0.0039336919784545895\t0.005437803268432617\t5484.6\t5484.6\n", "5550\t0.004024291038513183\t0.005432772636413574\t5542.5\t5542.5\n", "5600\t0.004134035110473633\t0.005635547637939453\t5607.0\t5607.0\n", "5650\t0.004127311706542969\t0.005524647235870361\t5642.3\t5642.3\n", "5700\t0.004242062568664551\t0.005697977542877197\t5707.8\t5707.8\n", "5750\t0.004284429550170899\t0.005725479125976563\t5762.45\t5762.45\n", "5800\t0.004394745826721192\t0.005867719650268555\t5792.8\t5792.8\n", "5850\t0.004466283321380615\t0.005883717536926269\t5863.25\t5863.25\n", "5900\t0.004485762119293213\t0.005992662906646728\t5905.6\t5905.6\n", "5950\t0.004622232913970947\t0.006032562255859375\t5940.55\t5940.55\n", "6000\t0.004757833480834961\t0.006076252460479737\t5999.8\t5999.8\n", "6050\t0.0048054933547973635\t0.006150686740875244\t6040.2\t6040.2\n", "6100\t0.004798769950866699\t0.006189799308776856\t6111.9\t6111.9\n", "6150\t0.004903233051300049\t0.006159067153930664\t6155.65\t6155.65\n", "6200\t0.0050896286964416506\t0.006379604339599609\t6185.65\t6185.65\n", "6250\t0.005020534992218018\t0.006270575523376465\t6234.4\t6234.4\n", "6300\t0.0051260232925415036\t0.0063544511795043945\t6290.3\t6290.3\n", "6350\t0.005292701721191406\t0.006562912464141845\t6342.5\t6342.5\n", "6400\t0.0052476048469543455\t0.006439733505249024\t6376.4\t6376.4\n", "6450\t0.005586278438568115\t0.006790614128112793\t6445.75\t6445.75\n", "6500\t0.005618667602539063\t0.006692755222320557\t6497.35\t6497.35\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "6550\t0.005497109889984131\t0.006597065925598144\t6551.3\t6551.3\n", "6600\t0.00615994930267334\t0.00761631727218628\t6588.7\t6588.7\n", "6650\t0.006261670589447021\t0.007762479782104492\t6658.45\t6658.45\n", "6700\t0.0058231353759765625\t0.00687333345413208\t6689.4\t6689.4\n", "6750\t0.0057525157928466795\t0.006850063800811768\t6765.4\t6765.4\n", "6800\t0.005866909027099609\t0.006905007362365723\t6796.7\t6796.7\n", "6850\t0.0061998128890991214\t0.007177233695983887\t6856.15\t6856.15\n", "6900\t0.0061198115348815914\t0.0072493314743041996\t6907.25\t6907.25\n", "6950\t0.0061930656433105465\t0.0071612119674682615\t6943.5\t6943.5\n", "7000\t0.006371510028839111\t0.0071629762649536135\t6965.2\t6965.2\n", "7050\t0.006458461284637451\t0.007604002952575684\t7064.5\t7064.5\n", "7100\t0.007606875896453857\t0.00862267017364502\t7117.5\t7117.5\n", "7150\t0.007065916061401367\t0.0076346158981323246\t7155.25\t7155.25\n", "7200\t0.006849420070648193\t0.007893705368041992\t7203.95\t7203.95\n", "7250\t0.006850004196166992\t0.007713115215301514\t7263.1\t7263.1\n", "7300\t0.0069659829139709474\t0.00782696008682251\t7301.7\t7301.7\n", "7350\t0.00678246021270752\t0.010437500476837159\t7369.8\t7369.8\n", "7400\t0.007015848159790039\t0.007833003997802734\t7393.9\t7393.9\n", "7450\t0.006950318813323975\t0.0076432466506958004\t7445.1\t7445.1\n", "7500\t0.007017409801483155\t0.007891845703125\t7500.4\t7500.4\n", "7550\t0.0071400880813598635\t0.007718575000762939\t7558.55\t7558.55\n", "7600\t0.007259190082550049\t0.007875871658325196\t7612.8\t7612.8\n", "7650\t0.007381999492645263\t0.008031225204467774\t7642.4\t7642.4\n", "7700\t0.007547843456268311\t0.008156073093414307\t7707.95\t7707.95\n", "7750\t0.007832348346710205\t0.008498501777648926\t7740.8\t7740.8\n", "7800\t0.007867980003356933\t0.00836721658706665\t7799.1\t7799.1\n", "7850\t0.007913827896118164\t0.008300888538360595\t7851.3\t7851.3\n", "7900\t0.008063209056854249\t0.008392536640167236\t7903.4\t7903.4\n", "7950\t0.008020806312561034\t0.008531618118286132\t7946.15\t7946.15\n", "8000\t0.008076906204223633\t0.008496391773223876\t7994.75\t7994.75\n", "8050\t0.00853203535079956\t0.008935987949371338\t8084.75\t8084.75\n", "8100\t0.008427250385284423\t0.011703157424926757\t8085.35\t8085.35\n", "8150\t0.008354878425598145\t0.00859992504119873\t8163.95\t8163.95\n", "8200\t0.008428084850311279\t0.008535802364349365\t8189.6\t8189.6\n", "8250\t0.008599019050598145\t0.008725082874298096\t8268.95\t8268.95\n", "8300\t0.008695471286773681\t0.009158134460449219\t8304.65\t8304.65\n", "8350\t0.009213912487030029\t0.00960381031036377\t8343.45\t8343.45\n", "8400\t0.00892859697341919\t0.008826708793640137\t8419.6\t8419.6\n", "8450\t0.00877288579940796\t0.008699357509613037\t8448.0\t8448.0\n", "8500\t0.008841443061828613\t0.008793509006500244\t8526.8\t8526.8\n", "8550\t0.009227442741394042\t0.009132230281829834\t8567.3\t8567.3\n", "8600\t0.009353721141815185\t0.009212684631347657\t8610.7\t8610.7\n", "8650\t0.009524297714233399\t0.009396243095397949\t8660.3\t8660.3\n", "8700\t0.009586524963378907\t0.009326040744781494\t8673.1\t8673.1\n", "8750\t0.009737873077392578\t0.009621024131774902\t8743.1\t8743.1\n", "8800\t0.009849154949188232\t0.009882283210754395\t8792.4\t8792.4\n", "8850\t0.00957103967666626\t0.009157729148864747\t8855.95\t8855.95\n", "8900\t0.009655892848968506\t0.009181451797485352\t8873.6\t8873.6\n", "8950\t0.009764528274536133\t0.009329915046691895\t8975.75\t8975.75\n", "9000\t0.009888100624084472\t0.009229791164398194\t9004.15\t9004.15\n", "9050\t0.009864366054534912\t0.009359920024871826\t9059.05\t9059.05\n", "9100\t0.009955179691314698\t0.009566891193389892\t9114.85\t9114.85\n", "9150\t0.010647928714752198\t0.010157275199890136\t9155.5\t9155.5\n", "9200\t0.01088029146194458\t0.00985020399093628\t9184.9\t9184.9\n", "9250\t0.010510563850402832\t0.009627234935760499\t9249.55\t9249.55\n", "9300\t0.010738790035247803\t0.009911119937896729\t9281.95\t9281.95\n", "9350\t0.01086941957473755\t0.010032999515533447\t9358.45\t9358.45\n", "9400\t0.0110129714012146\t0.010124647617340088\t9376.15\t9376.15\n", "9450\t0.011048412322998047\t0.010129904747009278\t9463.6\t9463.6\n", "9500\t0.011221909523010254\t0.010193121433258057\t9523.95\t9523.95\n", "9550\t0.011331379413604736\t0.010110616683959961\t9567.8\t9567.8\n", "9600\t0.011781704425811768\t0.01053389310836792\t9626.65\t9626.65\n", "9650\t0.011448121070861817\t0.010500156879425048\t9651.35\t9651.35\n", "9700\t0.012284398078918457\t0.010753500461578368\t9706.2\t9706.2\n", "9750\t0.011370515823364258\t0.0100730299949646\t9738.05\t9738.05\n", "9800\t0.011957025527954102\t0.010460031032562257\t9785.75\t9785.75\n", "9850\t0.012923967838287354\t0.01115732192993164\t9849.8\t9849.8\n", "9900\t0.01259392499923706\t0.010976922512054444\t9886.45\t9886.45\n", "9950\t0.011889362335205078\t0.010230183601379395\t9938.9\t9938.9\n", "10000\t0.012529420852661132\t0.010828161239624023\t10001.65\t10001.65\n", "10050\t0.012438595294952393\t0.010866677761077881\t10052.8\t10052.8\n", "10100\t0.012610995769500732\t0.010714244842529298\t10104.05\t10104.05\n", "10150\t0.01291971206665039\t0.011142528057098389\t10163.6\t10163.6\n", "10200\t0.013876128196716308\t0.014489734172821045\t10217.65\t10217.65\n", "10250\t0.014192926883697509\t0.012188923358917237\t10229.75\t10229.75\n", "10300\t0.013407456874847411\t0.011307275295257569\t10311.95\t10311.95\n", "10350\t0.013466238975524902\t0.011399495601654052\t10346.2\t10346.2\n", "10400\t0.013940799236297607\t0.011716866493225097\t10397.25\t10397.25\n", "10450\t0.013869166374206543\t0.011533069610595702\t10455.65\t10455.65\n", "10500\t0.01369091272354126\t0.01151740550994873\t10504.1\t10504.1\n", "10550\t0.014221119880676269\t0.011752760410308838\t10537.25\t10537.25\n", "10600\t0.014043092727661133\t0.01161118745803833\t10610.35\t10610.35\n", "10650\t0.01367800235748291\t0.011015748977661133\t10628.25\t10628.25\n", "10700\t0.013851118087768555\t0.01131739616394043\t10687.05\t10687.05\n", "10750\t0.014725446701049805\t0.012021374702453614\t10791.05\t10791.05\n", "10800\t0.014603006839752197\t0.011932885646820069\t10808.55\t10808.55\n", "10850\t0.014698946475982666\t0.012096667289733886\t10874.6\t10874.6\n", "10900\t0.015100789070129395\t0.01195695400238037\t10916.6\t10916.6\n", "10950\t0.015038025379180909\t0.011923551559448242\t10973.5\t10973.5\n", "11000\t0.015357780456542968\t0.011869263648986817\t10984.4\t10984.4\n", "11050\t0.015338492393493653\t0.012155067920684815\t11036.6\t11036.6\n", "11100\t0.015857338905334473\t0.012623047828674317\t11138.0\t11138.0\n", "11150\t0.015122604370117188\t0.012097012996673585\t11154.35\t11154.35\n", "11200\t0.015191566944122315\t0.011771059036254883\t11197.5\t11197.5\n", "11250\t0.015517675876617431\t0.012215673923492432\t11251.65\t11251.65\n", "11300\t0.015519320964813232\t0.012099158763885499\t11282.9\t11282.9\n", "11350\t0.016627573966979982\t0.01249368190765381\t11369.7\t11369.7\n", "11400\t0.016485226154327393\t0.012682914733886719\t11421.8\t11421.8\n", "11450\t0.01661984920501709\t0.012481880187988282\t11443.7\t11443.7\n", "11500\t0.017015039920806885\t0.013039815425872802\t11493.5\t11493.5\n", "11550\t0.016645407676696776\t0.01303333044052124\t11553.3\t11553.3\n", "11600\t0.017031610012054443\t0.013078403472900391\t11592.45\t11592.45\n", "11650\t0.017746686935424805\t0.013111114501953125\t11665.55\t11665.55\n", "11700\t0.01673766374588013\t0.012525880336761474\t11717.4\t11717.4\n", "11750\t0.016420066356658936\t0.012307369709014892\t11754.5\t11754.5\n", "11800\t0.016910886764526366\t0.01287689208984375\t11785.2\t11785.2\n", "11850\t0.016856420040130615\t0.013051140308380126\t11839.05\t11839.05\n", "11900\t0.017993235588073732\t0.013746333122253419\t11903.7\t11903.7\n", "11950\t0.017886555194854735\t0.016182827949523925\t11927.1\t11927.1\n", "12000\t0.01796025037765503\t0.013410604000091553\t12002.45\t12002.45\n", "12050\t0.01822091341018677\t0.01352381706237793\t12076.1\t12076.1\n", "12100\t0.01822923421859741\t0.013521015644073486\t12134.2\t12134.2\n", "12150\t0.01838284730911255\t0.013495147228240967\t12148.2\t12148.2\n", "12200\t0.0190954327583313\t0.014048409461975098\t12199.65\t12199.65\n", "12250\t0.01919523477554321\t0.013979649543762207\t12207.2\t12207.2\n", "12300\t0.01897536516189575\t0.016786491870880126\t12336.7\t12336.7\n", "12350\t0.018241512775421142\t0.013167083263397217\t12357.1\t12357.1\n", "12400\t0.018052780628204347\t0.012844276428222657\t12417.0\t12417.0\n", "12450\t0.018158090114593507\t0.01285172700881958\t12448.55\t12448.55\n", "12500\t0.018382823467254637\t0.01309049129486084\t12502.95\t12502.95\n", "12550\t0.0185144305229187\t0.01304091215133667\t12487.9\t12487.9\n", "12600\t0.018610143661499025\t0.01341618299484253\t12594.35\t12594.35\n", "12650\t0.018757057189941407\t0.013263916969299317\t12641.2\t12641.2\n", "12700\t0.01892036199569702\t0.013274657726287841\t12677.4\t12677.4\n", "12750\t0.019269859790802\t0.013405287265777588\t12760.85\t12760.85\n", "12800\t0.019124865531921387\t0.013456547260284423\t12798.1\t12798.1\n", "12850\t0.01914260387420654\t0.013383960723876953\t12845.65\t12845.65\n", "12900\t0.019437575340270997\t0.013597238063812255\t12911.9\t12911.9\n", "12950\t0.02052854299545288\t0.014136004447937011\t12949.8\t12949.8\n", "13000\t0.021813392639160156\t0.01507641077041626\t13008.5\t13008.5\n", "13050\t0.02148245573043823\t0.015018784999847412\t13039.45\t13039.45\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "13100\t0.02130434513092041\t0.01461416482925415\t13137.5\t13137.5\n", "13150\t0.021392130851745607\t0.014457762241363525\t13162.9\t13162.9\n", "13200\t0.020850944519042968\t0.014273452758789062\t13236.4\t13236.4\n", "13250\t0.021086359024047853\t0.014301824569702148\t13256.0\t13256.0\n", "13300\t0.021351420879364015\t0.014634358882904052\t13287.0\t13287.0\n", "13350\t0.021691834926605223\t0.0148323655128479\t13352.65\t13352.65\n", "13400\t0.02172638177871704\t0.014599847793579101\t13410.15\t13410.15\n", "13450\t0.02242802381515503\t0.015128087997436524\t13489.25\t13489.25\n", "13500\t0.02184985876083374\t0.014539766311645507\t13519.1\t13519.1\n", "13550\t0.02183678150177002\t0.014546418190002441\t13539.55\t13539.55\n", "13600\t0.021686017513275146\t0.014086544513702393\t13589.55\t13589.55\n", "13650\t0.021706581115722656\t0.01464238166809082\t13590.1\t13590.1\n", "13700\t0.022080707550048827\t0.017379772663116456\t13705.5\t13705.5\n", "13750\t0.02212812900543213\t0.014271986484527589\t13760.6\t13760.6\n", "13800\t0.02311791181564331\t0.014808082580566406\t13810.15\t13810.15\n", "13850\t0.022650766372680663\t0.014684128761291503\t13849.2\t13849.2\n", "13900\t0.024443209171295166\t0.015669572353363036\t13879.65\t13879.65\n", "13950\t0.023269033432006835\t0.01531531810760498\t13951.0\t13951.0\n", "14000\t0.023328661918640137\t0.015244567394256591\t13992.8\t13992.8\n", "14050\t0.02323307991027832\t0.01781219244003296\t14036.7\t14036.7\n", "14100\t0.023026299476623536\t0.014629185199737549\t14081.45\t14081.45\n", "14150\t0.02301565408706665\t0.014587044715881348\t14152.8\t14152.8\n", "14200\t0.023812079429626466\t0.01526172161102295\t14210.45\t14210.45\n", "14250\t0.023573577404022217\t0.015202951431274415\t14273.1\t14273.1\n", "14300\t0.023576676845550537\t0.014766848087310791\t14293.45\t14293.45\n", "14350\t0.023686552047729494\t0.015454316139221191\t14347.25\t14347.25\n", "14400\t0.024591922760009766\t0.015564143657684326\t14388.65\t14388.65\n", "14450\t0.02496851682662964\t0.01574915647506714\t14448.4\t14448.4\n", "14500\t0.02547353506088257\t0.01603318452835083\t14478.7\t14478.7\n", "14550\t0.025189733505249022\t0.01556246280670166\t14567.25\t14567.25\n", "14600\t0.024977552890777587\t0.0157562255859375\t14621.9\t14621.9\n", "14650\t0.024678456783294677\t0.015456843376159667\t14657.0\t14657.0\n", "14700\t0.02490500211715698\t0.01554356813430786\t14680.9\t14680.9\n", "14750\t0.02574402093887329\t0.018553364276885986\t14766.35\t14766.35\n", "14800\t0.026060116291046143\t0.015692758560180663\t14778.6\t14778.6\n", "14850\t0.025993549823760988\t0.01588228940963745\t14874.3\t14874.3\n", "14900\t0.026160824298858642\t0.016007769107818603\t14937.1\t14937.1\n", "14950\t0.025967741012573244\t0.015963256359100342\t14996.0\t14996.0\n", "15000\t0.026504981517791747\t0.016198122501373292\t15027.1\t15027.1\n", "15050\t0.026190221309661865\t0.015862345695495605\t15102.7\t15102.7\n", "15100\t0.025833356380462646\t0.018451035022735596\t15096.4\t15096.4\n", "15150\t0.02664923667907715\t0.01593238115310669\t15133.85\t15133.85\n", "15200\t0.027273797988891603\t0.01632843017578125\t15227.0\t15227.0\n", "15250\t0.027076756954193114\t0.016468572616577148\t15249.75\t15249.75\n", "15300\t0.027529978752136232\t0.0167502760887146\t15256.9\t15256.9\n", "15350\t0.027867400646209718\t0.01668577194213867\t15335.45\t15335.45\n", "15400\t0.028164899349212645\t0.017102384567260744\t15387.9\t15387.9\n", "15450\t0.027888929843902587\t0.017012131214141846\t15449.85\t15449.85\n", "15500\t0.028308188915252684\t0.016625702381134033\t15497.55\t15497.55\n", "15550\t0.028288280963897704\t0.01651780605316162\t15565.4\t15565.4\n", "15600\t0.02837921380996704\t0.01667499542236328\t15619.3\t15619.3\n", "15650\t0.030009186267852782\t0.017741191387176513\t15635.6\t15635.6\n", "15700\t0.030089855194091797\t0.017990219593048095\t15715.85\t15715.85\n", "15750\t0.02967827320098877\t0.020123767852783202\t15745.95\t15745.95\n", "15800\t0.03331592082977295\t0.019823575019836427\t15809.85\t15809.85\n", "15850\t0.02914949655532837\t0.01662942171096802\t15843.4\t15843.4\n", "15900\t0.030936312675476075\t0.017556357383728027\t15934.7\t15934.7\n", "15950\t0.03121473789215088\t0.018145203590393066\t15953.5\t15953.5\n", "16000\t0.03681904077529907\t0.021819090843200682\t15998.75\t15998.75\n", "16050\t0.031601226329803465\t0.01813771724700928\t16021.6\t16021.6\n", "16100\t0.03279818296432495\t0.019386935234069824\t16092.95\t16092.95\n", "16150\t0.03245553970336914\t0.018559849262237547\t16138.35\t16138.35\n", "16200\t0.03230330944061279\t0.017871010303497314\t16227.55\t16227.55\n", "16250\t0.03140876293182373\t0.018009936809539794\t16251.45\t16251.45\n", "16300\t0.03190149068832397\t0.01798255443572998\t16256.4\t16256.4\n", "16350\t0.030925023555755615\t0.017598330974578857\t16386.2\t16386.2\n", "16400\t0.03197139501571655\t0.01795409917831421\t16397.4\t16397.4\n", "16450\t0.03169623613357544\t0.01753581762313843\t16459.6\t16459.6\n", "16500\t0.030825304985046386\t0.01712827682495117\t16525.9\t16525.9\n", "16550\t0.031346690654754636\t0.017479801177978517\t16557.4\t16557.4\n", "16600\t0.031505680084228514\t0.017590057849884034\t16564.15\t16564.15\n", "16650\t0.03278249502182007\t0.01842600107192993\t16703.25\t16703.25\n", "16700\t0.03154090642929077\t0.017555856704711915\t16690.25\t16690.25\n", "16750\t0.0315819263458252\t0.017607593536376955\t16777.3\t16777.3\n", "16800\t0.03168821334838867\t0.017545604705810548\t16800.05\t16800.05\n", "16850\t0.03206586837768555\t0.017457640171051024\t16864.35\t16864.35\n", "16900\t0.03232784271240234\t0.01776648759841919\t16919.45\t16919.45\n", "16950\t0.032314848899841306\t0.017500627040863036\t16952.3\t16952.3\n", "17000\t0.03236871957778931\t0.017585527896881104\t16970.0\t16970.0\n", "17050\t0.032820475101470944\t0.017864489555358888\t17029.45\t17029.45\n", "17100\t0.03284541368484497\t0.017730867862701415\t17100.0\t17100.0\n", "17150\t0.03302433490753174\t0.017883610725402833\t17166.5\t17166.5\n", "17200\t0.03365694284439087\t0.018409097194671632\t17198.6\t17198.6\n", "17250\t0.0337273120880127\t0.01793311834335327\t17254.3\t17254.3\n", "17300\t0.03383182287216187\t0.017897510528564455\t17309.9\t17309.9\n", "17350\t0.03411468267440796\t0.01827714443206787\t17357.05\t17357.05\n", "17400\t0.03456780910491943\t0.02115508317947388\t17378.2\t17378.2\n", "17450\t0.03595083951950073\t0.018955516815185546\t17467.9\t17467.9\n", "17500\t0.03565969467163086\t0.018873989582061768\t17517.05\t17517.05\n", "17550\t0.03580211400985718\t0.018705916404724122\t17550.3\t17550.3\n", "17600\t0.036066973209381105\t0.018757712841033936\t17585.35\t17585.35\n", "17650\t0.03673297166824341\t0.019146168231964113\t17681.4\t17681.4\n", "17700\t0.037303733825683597\t0.01924564838409424\t17694.5\t17694.5\n", "17750\t0.036759448051452634\t0.019384264945983887\t17737.95\t17737.95\n", "17800\t0.037622368335723876\t0.019503092765808104\t17811.0\t17811.0\n", "17850\t0.03723673820495606\t0.019417202472686766\t17861.5\t17861.5\n", "17900\t0.037288105487823485\t0.018969190120697022\t17883.3\t17883.3\n", "17950\t0.03633219003677368\t0.01865408420562744\t17987.25\t17987.25\n", "18000\t0.03721396923065186\t0.019144821166992187\t18029.05\t18029.05\n", "18050\t0.0375335693359375\t0.019215714931488038\t18021.45\t18021.45\n", "18100\t0.036928558349609376\t0.019129574298858643\t18123.0\t18123.0\n", "18150\t0.03718234300613403\t0.019021594524383546\t18132.45\t18132.45\n", "18200\t0.03773888349533081\t0.019270825386047363\t18205.9\t18205.9\n", "18250\t0.03732484579086304\t0.019444596767425538\t18236.05\t18236.05\n", "18300\t0.03733634948730469\t0.018921685218811036\t18315.4\t18315.4\n", "18350\t0.037762773036956784\t0.0189314603805542\t18338.3\t18338.3\n", "18400\t0.03947923183441162\t0.019839143753051756\t18398.25\t18398.25\n", "18450\t0.03943310976028443\t0.01974964141845703\t18426.65\t18426.65\n", "18500\t0.03943930864334107\t0.02290496826171875\t18523.0\t18523.0\n", "18550\t0.03958357572555542\t0.020260715484619142\t18567.3\t18567.3\n", "18600\t0.039849257469177245\t0.0197104811668396\t18647.9\t18647.9\n", "18650\t0.0405178427696228\t0.02007864713668823\t18671.55\t18671.55\n", "18700\t0.04097309112548828\t0.020061576366424562\t18671.45\t18671.45\n", "18750\t0.04000890254974365\t0.01987580060958862\t18775.45\t18775.45\n", "18800\t0.04116791486740112\t0.020150399208068846\t18774.1\t18774.1\n", "18850\t0.039805710315704346\t0.019790828227996826\t18896.65\t18896.65\n", "18900\t0.0399323582649231\t0.019760000705718993\t18888.85\t18888.85\n", "18950\t0.040435612201690674\t0.020015835762023926\t18964.55\t18964.55\n", "19000\t0.04062749147415161\t0.019558405876159667\t18977.7\t18977.7\n", "19050\t0.04179482460021973\t0.01986156702041626\t19042.35\t19042.35\n", "19100\t0.0410616397857666\t0.020101547241210938\t19082.95\t19082.95\n", "19150\t0.04186474084854126\t0.020161747932434082\t19135.3\t19135.3\n", "19200\t0.04200676679611206\t0.020110344886779784\t19178.45\t19178.45\n", "19250\t0.04118356704711914\t0.02314709424972534\t19226.6\t19226.6\n", "19300\t0.041628909111022946\t0.02011532783508301\t19308.1\t19308.1\n", "19350\t0.042775976657867434\t0.020477724075317384\t19405.8\t19405.8\n", "19400\t0.04267737865447998\t0.02050790786743164\t19377.55\t19377.55\n", "19450\t0.04417085647583008\t0.02090979814529419\t19455.25\t19455.25\n", "19500\t0.04292099475860596\t0.02016865015029907\t19469.3\t19469.3\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "19550\t0.04442429542541504\t0.021109282970428467\t19571.4\t19571.4\n", "19600\t0.04492255449295044\t0.021379566192626952\t19585.2\t19585.2\n", "19650\t0.04303377866744995\t0.020332324504852294\t19606.85\t19606.85\n", "19700\t0.04457027912139892\t0.020804929733276366\t19695.8\t19695.8\n", "19750\t0.04626067876815796\t0.021799421310424803\t19748.7\t19748.7\n", "19800\t0.046350288391113284\t0.022008538246154785\t19814.25\t19814.25\n", "19850\t0.04898281097412109\t0.023620855808258057\t19824.25\t19824.25\n", "19900\t0.05220431089401245\t0.02534773349761963\t19874.6\t19874.6\n", "19950\t0.05052783489227295\t0.027226483821868895\t19953.3\t19953.3\n", "20000\t0.04882289171218872\t0.023225855827331544\t19964.05\t19964.05\n" ] } ], "source": [ "import time\n", "import random\n", "\n", "step = 50\n", "nmax = 20000\n", "repetitions = 20\n", "\n", "perf_dynarray, perf_linked = {}, {}\n", "random.seed()\n", "\n", "for n in range(0, nmax+1, step):\n", " runtime_dynarray, runtime_linked = 0.0, 0.0\n", " list_lengths_dynarray, list_lengths_linked = 0, 0\n", " for i in range(repetitions):\n", " test_dynarray_n = [random.randrange(n*n) for j in range(n)]\n", " test_linked_n = LinkedList()\n", " test_linked_n.copy_from_dynarray(test_dynarray_n)\n", " \n", " start = time.time()\n", " mod3_copying_dynarray(test_dynarray_n)\n", " runtime_dynarray += time.time() - start\n", " list_lengths_dynarray += len(test_dynarray_n)\n", " \n", " start = time.time()\n", " mod3_copying_linked_list(test_linked_n)\n", " runtime_linked += time.time() - start\n", " list_lengths_linked += test_linked_n.length()\n", " \n", " perf_dynarray[n] = runtime_dynarray / repetitions\n", " perf_linked[n] = runtime_linked / repetitions\n", " \n", " print(n, perf_dynarray[n], perf_linked[n], \\\n", " list_lengths_dynarray/repetitions, list_lengths_linked/repetitions, sep='\\t')" ] }, { "cell_type": "code", "execution_count": 93, "id": "e409cb0e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA54AAAIsCAYAAACa+nYtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAADbqUlEQVR4nOzdd3iUVfrG8e876T0TOihSRhACKkwgWAmwq7vurqui2+xgQde2uwgqiA1FUdS1gQW7629t6659FQmiQEKGnlAcmhSpyWRSSZn398dkZieVTEhMuz/XxRXyznlnziTilTvPOc8xTNNEREREREREpKVYWnsCIiIiIiIi0rEpeIqIiIiIiEiLUvAUERERERGRFqXgKSIiIiIiIi1KwVNERERERERalIKniIiIiIiItKjQ1p5AR9G1a1ezX79+rT0NERERERGRVuFwOA6ZptmtrscUPJtJv379yMrKau1piIiIiIiItArDMHbW95iW2oqIiIiIiEiLUvAUERERERGRFqXgKSIiIiIiIi1KwVNERERERERalIKniIiIiIiItCgFTxEREREREWlRCp4iIiIiIiLSohQ8RUREREREpEUpeIqIiIiIiEiLUvAUERERERGRFqXgKSIiIiIiIi1KwVNERERERERalIKniIiIiIiItCgFTxEREREREWlRCp4iIiIiIiLSohQ8RUREREREpEUpeIqIiIiIiEiLUvAUERERERGRFqXgKSIiIiIi0oZ5PB5yC12YptnaU2kyBU8REREREZE2yuPxMHnBTOzTJzJp/gw8Hk9rT6lJFDxFRERERETaKFexm/TsDKwxCaRnZ+Aqdrf2lJpEwVNERERERKSNssYkkJacSl5RPmnJqVhjElp7Sk0S2toTEBERERERkboZhsHCKbNxFbuxxiRgGEZrT6lJFDxFRERERETaMIvFQlJsYmtP45hoqa2IiIiIiIi0KAVPERERERERaVEKniIiIiIiItKiFDxFRERERESkRSl4ioiIiIiISItS8BQREREREZEWpeApIiIiIiIiLUrBU0RERERERFqUgqeIiIiIiEg74PF4yC10YZpma08laKGtPYG62G2GBbgVuB7oBxwE3gFmOZxmUSOf4zxgJnAKcARYBExzOM3tNcalAYvreZpPHE7z18G/AxERERERkebj8XiYvGAm6dkZpCWnsnDKbCyW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CjxFRERERESkUynwFBERERERkU6lwFNEREREREQ6lQJPERERERER6VQKPEVERERERKRTKfAUERERERGRTqXAU0RERERERDqVAk8RERERERHpVAo8RUREREREpFMp8BQREREREZFOpcBTREREREREOpUCTxEREREREelUCjxFRERERESkUynwFBERERERkU6lwFNEREREREQ6lWGaZlf34aRgGMZBYHtX9yOG3kBJV3eiB9P4dx2NfdfR2HcdjX3X0dh3HY1919HYd53uOvZDTNPsE+uEAs+TnGEYK0zTnNDV/eipNP5dR2PfdTT2XUdj33U09l1HY991NPZd50Qcey21FRERERERkU6lwFNEREREREQ6lQLPk99zXd2BHk7j33U09l1HY991NPZdR2PfdTT2XUdj33VOuLHXHk8RERERERHpVJrxFBERERERkU6lwFNEREREREQ6lb2rOyAdz+U0bMBPgJuBocBB4HXgXrfHrO7CrnVbLqcxEvge8CVgBJAIbAXeAB6PHjeX0/gtcF8Lt5rl9piPNrl3u74fLqdxGvBHYAoQD6wE7nN7zAVH/wq7N5fTaGnNf7XbY6Y2advm8dHYt+4I72UAv9tjOtrQVu/7Vricxq+AswEXMAzY7vaYQ1tp3y3e4yfDz5K2jr3LaRjAd4GvAROAAVj18VYDs90eMy/GNW3+3Aq119i38L7vTp8vJ8PYQ7vH/0j77u52e8zZbWjf49/77fl9MtS+R33eK/A8OT0G3A68A8wBRoW+PsvlNC52e8xgV3aum7oe+BHwb+AfgA+YBjwAfMvlNCa7PWZtk2t+RvPCve4Y927z98PlNEYASwE/8DBQAfwA+NjlNC5ze8x5x/Qqu7clNN8o74v+4ijGR2PfurcBT4zj44FZwPsxzul9335/AEqxfuhnttawm73HT4afJW0d+wTgZaxA81/ANqA/cAuwzOU0rnV7zFdiXHfEzy3Q2HOE932U7vD5cjKMPbRv/K9p4fhvsYKnWD8L9N6Prc2/T/bEz3sFnicZl9MYA9wGvO32mDOjjm8DngCuAl7tou51Z28CD7o9ZkXUsWdcTmML8BvgBuAvTa551+0xi1u76VF8Px7E+gHhcnvM1aG2LwGFwFMup3G623PSZgT7ooVf7KK1eXw09kfm9phrgbVNj7ucxrOh/5wb4zK979tvhNtjfgHg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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import seaborn as sbn\n", "import matplotlib.pyplot as plt\n", "\n", "keylist_dynarray = list(perf_dynarray.keys())\n", "vallist_dynarray = list(perf_dynarray.values())\n", "\n", "keylist_linked = list(perf_linked.keys())\n", "vallist_linked = list(perf_linked.values())\n", "\n", "fig, ax = plt.subplots()\n", "fig.set_size_inches(15, 9)\n", "plt.xticks(fontsize=18, color=\"#322300\")\n", "plt.yticks(fontsize=18, color=\"#322300\")\n", "ax.set_xlabel(\"input list size\", fontsize=24, color=\"#322300\")\n", "ax.set_ylabel(\"average runtime in seconds\", fontsize=24, color=\"#322300\")\n", "\n", "sbn.regplot(x=keylist_dynarray, y=vallist_dynarray, color='#005528', \\\n", " order=2, scatter_kws={'s':5}) # green for dynamic array (Python list)\n", "sbn.regplot(x=keylist_linked, y=vallist_linked, color='#002855', \\\n", " order=1, scatter_kws={'s':5}) # blue for singly-linked list" ] }, { "cell_type": "code", "execution_count": null, "id": "1de8c673", "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.9.7" } }, "nbformat": 4, "nbformat_minor": 5 }