{ "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": 8, "id": "0956104f", "metadata": {}, "outputs": [], "source": [ "# doubly-linked list data structure\n", "#\n", "class DoublyLinkedList:\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 = DoublyLinkedListNode()\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", " else:\n", " self._head.set_prev(new_node)\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 = DoublyLinkedListNode()\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", " else:\n", " node.get_next().set_prev(new_node)\n", " new_node.set_item(value)\n", " new_node.set_next(node.get_next())\n", " new_node.set_prev(node)\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.set_prev(None) # detach the head from the list (not strictly required)\n", " new_head_node.set_prev(None)\n", " self._head = new_head_node # designate its previous successor as the new head node\n", " return old_head_value\n", " \n", " def pop(self, node):\n", " prev_node = node.get_prev()\n", " next_node = node.get_next()\n", " \n", " if prev_node is None:\n", " return self.pop_front()\n", " else:\n", " prev_node.set_next(next_node)\n", " if next_node is None:\n", " self._tail = prev_node\n", " else:\n", " next_node.set_prev(prev_node)\n", " \n", " node.set_prev(None)\n", " node.set_next(None)\n", " return node.get_item()\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 doubly-linked list\n", "#\n", "class DoublyLinkedListNode:\n", " \n", " def __init__(self):\n", " self._prev = None\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", " def set_prev(self, prev_node):\n", " self._prev = prev_node\n", " \n", " def get_item(self):\n", " return self._item\n", " def get_next(self):\n", " return self._next\n", " def get_prev(self):\n", " return self._prev\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)\n", " \n", " # returns True if there is a previous element, false if the previous\n", " # element is None, i.e., if we are at the head of the list\n", " #\n", " def has_prev(self):\n", " return (self._prev is not None)" ] }, { "cell_type": "code", "execution_count": 9, "id": "5c89bedc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "random_dynarray: [22, 11, 1, 20, 9]\n", "linked_list_copy: <22; 11; 1; 20; 9>\n", "length of linked list: 5\n", "doubly_linked_list_copy: <22; 11; 1; 20; 9>\n", "length of doubly 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())\n", "\n", "doubly_linked_list_copy = DoublyLinkedList()\n", "doubly_linked_list_copy.copy_from_dynarray(random_dynarray)\n", "print(\"doubly_linked_list_copy:\", doubly_linked_list_copy.string())\n", "print(\"length of doubly linked list:\", doubly_linked_list_copy.length())" ] }, { "cell_type": "code", "execution_count": 10, "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()\n", "\n", "def mod3_copying_doubly_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(iterator)\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": 5, "id": "36391e0b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "random_dynarray: [1, 24, 11, 13, 7]\n", "linked_list_copy: <1; 24; 11; 13; 7>\n", "doubly_linked_list_copy: <1; 24; 11; 13; 7>\n", "\n", "*** now running the mod-3 copy functions ***\n", "\n", "new status of dyn. array: [1, 11, 11, 13, 7]\n", "new status of linked list: <1; 11; 11; 13; 7>\n", "new status of doubly linked list: <1; 11; 11; 13; 7>\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", "doubly_linked_list_copy = DoublyLinkedList()\n", "doubly_linked_list_copy.copy_from_dynarray(random_dynarray)\n", "print(\"doubly_linked_list_copy:\", doubly_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", "mod3_copying_doubly_linked_list(doubly_linked_list_copy)\n", "print(\"new status of dyn. array:\", random_dynarray)\n", "print(\"new status of linked list:\", linked_list_copy.string())\n", "print(\"new status of doubly linked list:\", doubly_linked_list_copy.string())" ] }, { "cell_type": "code", "execution_count": 11, "id": "091bf754", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\t3.695487976074219e-07\t3.5762786865234375e-07\t3.933906555175781e-07\t0.0\t0.0\t0.0\n", "50\t1.25885009765625e-05\t5.868673324584961e-05\t6.81757926940918e-05\t53.4\t53.4\t53.4\n", "100\t2.657175064086914e-05\t0.00014401674270629882\t0.00015692710876464845\t99.95\t99.95\t99.95\n", "150\t5.443096160888672e-05\t0.00025537014007568357\t0.0002928018569946289\t152.65\t152.65\t152.65\n", "200\t5.491971969604492e-05\t0.00022760629653930664\t0.00024902820587158203\t202.65\t202.65\t202.65\n", "250\t0.0001063704490661621\t0.0002963542938232422\t0.00034847259521484373\t250.8\t250.8\t250.8\n", "300\t8.233785629272461e-05\t0.00033566951751708987\t0.0003939986228942871\t302.1\t302.1\t302.1\n", "350\t8.672475814819336e-05\t0.00036193132400512694\t0.0004570245742797852\t350.65\t350.65\t350.65\n", "400\t0.00010139942169189453\t0.00042912960052490237\t0.00048089027404785156\t396.15\t396.15\t396.15\n", "450\t0.0001543283462524414\t0.0005870699882507324\t0.0006410837173461914\t455.55\t455.55\t455.55\n", "500\t0.00012754201889038087\t0.0005024194717407227\t0.0005716443061828613\t491.95\t491.95\t491.95\n", "550\t0.00014581680297851563\t0.0005650758743286133\t0.0006450414657592773\t552.2\t552.2\t552.2\n", "600\t0.00018455982208251954\t0.0007898688316345214\t0.0008283376693725586\t603.85\t603.85\t603.85\n", "650\t0.00022547245025634767\t0.0007815122604370117\t0.0008647680282592773\t645.85\t645.85\t645.85\n", "700\t0.00021119117736816405\t0.0008569121360778809\t0.0009413719177246094\t689.65\t689.65\t689.65\n", "750\t0.0002203226089477539\t0.0008418202400207519\t0.0009419202804565429\t751.95\t751.95\t751.95\n", "800\t0.0002547264099121094\t0.0009482264518737793\t0.0009604096412658691\t794.9\t794.9\t794.9\n", "850\t0.0002493143081665039\t0.0008703827857971192\t0.0009419441223144532\t848.85\t848.85\t848.85\n", "900\t0.0003101825714111328\t0.0011146903038024903\t0.0012832403182983399\t906.55\t906.55\t906.55\n", "950\t0.0003334164619445801\t0.0011461615562438966\t0.0012292146682739257\t939.95\t939.95\t939.95\n", "1000\t0.0003251314163208008\t0.001206672191619873\t0.0012633681297302246\t1002.65\t1002.65\t1002.65\n", "1050\t0.00033504962921142577\t0.0011348366737365724\t0.0012053847312927246\t1051.4\t1051.4\t1051.4\n", "1100\t0.00036243200302124026\t0.0012774705886840821\t0.0013474106788635253\t1102.4\t1102.4\t1102.4\n", "1150\t0.00039545297622680666\t0.0013654828071594238\t0.0014246821403503418\t1156.0\t1156.0\t1156.0\n", "1200\t0.00041251182556152345\t0.001306760311126709\t0.0013902068138122558\t1189.75\t1189.75\t1189.75\n", "1250\t0.000459587574005127\t0.001448988914489746\t0.001647186279296875\t1250.45\t1250.45\t1250.45\n", "1300\t0.0004647374153137207\t0.0014672636985778808\t0.0015594959259033203\t1313.35\t1313.35\t1313.35\n", "1350\t0.000496065616607666\t0.0014856815338134765\t0.0016169428825378418\t1349.5\t1349.5\t1349.5\n", "1400\t0.0004892468452453614\t0.0015072345733642579\t0.0015324831008911132\t1395.6\t1395.6\t1395.6\n", "1450\t0.0005453228950500488\t0.001709747314453125\t0.0017883777618408203\t1462.65\t1462.65\t1462.65\n", "1500\t0.0005676746368408203\t0.0017800688743591308\t0.0018439650535583495\t1503.75\t1503.75\t1503.75\n", "1550\t0.000568842887878418\t0.0016296029090881348\t0.00180586576461792\t1553.1\t1553.1\t1553.1\n", "1600\t0.000616145133972168\t0.0017579555511474609\t0.0019000649452209472\t1600.35\t1600.35\t1600.35\n", "1650\t0.0006428956985473633\t0.0018491268157958985\t0.001926863193511963\t1645.8\t1645.8\t1645.8\n", "1700\t0.0006745576858520508\t0.001983964443206787\t0.0020543813705444338\t1708.8\t1708.8\t1708.8\n", "1750\t0.0006829500198364258\t0.002003931999206543\t0.0020467400550842284\t1744.25\t1744.25\t1744.25\n", "1800\t0.0006817936897277832\t0.0018843531608581543\t0.0021185994148254393\t1790.55\t1790.55\t1790.55\n", "1850\t0.0007549643516540528\t0.0019141674041748048\t0.0021333575248718263\t1852.55\t1852.55\t1852.55\n", "1900\t0.0007433056831359863\t0.0020435214042663573\t0.0022711396217346192\t1891.05\t1891.05\t1891.05\n", "1950\t0.0008101463317871094\t0.0020845890045166015\t0.0022559285163879393\t1954.4\t1954.4\t1954.4\n", "2000\t0.0008098006248474122\t0.002157902717590332\t0.002312636375427246\t2001.25\t2001.25\t2001.25\n", "2050\t0.0008704423904418946\t0.0022572755813598635\t0.0024742841720581054\t2061.0\t2061.0\t2061.0\n", "2100\t0.0008682847023010254\t0.0022454142570495607\t0.0024538516998291017\t2101.6\t2101.6\t2101.6\n", "2150\t0.0009045243263244629\t0.0022438764572143555\t0.00246204137802124\t2149.65\t2149.65\t2149.65\n", "2200\t0.0010055065155029296\t0.00236891508102417\t0.0025366783142089845\t2200.5\t2200.5\t2200.5\n", "2250\t0.0009884238243103027\t0.0025110602378845214\t0.0027173876762390135\t2246.15\t2246.15\t2246.15\n", "2300\t0.0009913206100463866\t0.0023864030838012694\t0.002593815326690674\t2298.1\t2298.1\t2298.1\n", "2350\t0.0010214805603027343\t0.0024529218673706053\t0.002619516849517822\t2359.95\t2359.95\t2359.95\n", "2400\t0.0010748982429504394\t0.0026539087295532225\t0.0027130126953125\t2393.8\t2393.8\t2393.8\n", "2450\t0.0011632680892944337\t0.0028872609138488768\t0.0030125141143798827\t2458.4\t2458.4\t2458.4\n", "2500\t0.0011792898178100586\t0.0028785943984985353\t0.0031448960304260253\t2494.7\t2494.7\t2494.7\n", "2550\t0.0011599898338317872\t0.0027873992919921877\t0.002955353260040283\t2552.5\t2552.5\t2552.5\n", "2600\t0.0011903643608093262\t0.002938210964202881\t0.003128945827484131\t2595.0\t2595.0\t2595.0\n", "2650\t0.0012594103813171388\t0.0031540393829345703\t0.0032698869705200194\t2648.9\t2648.9\t2648.9\n", "2700\t0.0012822270393371582\t0.003158080577850342\t0.003311014175415039\t2694.4\t2694.4\t2694.4\n", "2750\t0.0012878179550170898\t0.003032839298248291\t0.0032337665557861327\t2741.3\t2741.3\t2741.3\n", "2800\t0.0013872742652893066\t0.0032321929931640623\t0.003282463550567627\t2808.15\t2808.15\t2808.15\n", "2850\t0.001362907886505127\t0.0030918002128601076\t0.003326272964477539\t2861.55\t2861.55\t2861.55\n", "2900\t0.0014500021934509277\t0.0033047676086425783\t0.003350222110748291\t2907.75\t2907.75\t2907.75\n", "2950\t0.0015071988105773925\t0.00342411994934082\t0.0035514116287231447\t2935.5\t2935.5\t2935.5\n", "3000\t0.0015445709228515624\t0.0033854007720947265\t0.003666698932647705\t2998.8\t2998.8\t2998.8\n", "3050\t0.0015790700912475587\t0.003445780277252197\t0.003580749034881592\t3033.95\t3033.95\t3033.95\n", "3100\t0.0016324639320373536\t0.0036100506782531737\t0.003784465789794922\t3111.4\t3111.4\t3111.4\n", "3150\t0.0016915678977966308\t0.0037382841110229492\t0.003930473327636718\t3153.55\t3153.55\t3153.55\n", "3200\t0.0017341017723083497\t0.003669476509094238\t0.0038439273834228516\t3190.2\t3190.2\t3190.2\n", "3250\t0.0016645073890686035\t0.0036031246185302735\t0.003872668743133545\t3250.85\t3250.85\t3250.85\n", "3300\t0.001904737949371338\t0.004063713550567627\t0.004076087474822998\t3297.65\t3297.65\t3297.65\n", "3350\t0.0017881155014038085\t0.00367199182510376\t0.003909361362457275\t3341.85\t3341.85\t3341.85\n", "3400\t0.0018345832824707032\t0.0036757707595825194\t0.003865623474121094\t3395.7\t3395.7\t3395.7\n", "3450\t0.001967132091522217\t0.004133677482604981\t0.0042154908180236815\t3443.4\t3443.4\t3443.4\n", "3500\t0.0019092440605163574\t0.003960835933685303\t0.0040438175201416016\t3489.15\t3489.15\t3489.15\n", "3550\t0.0020684003829956055\t0.004179441928863525\t0.004157125949859619\t3550.2\t3550.2\t3550.2\n", "3600\t0.0019869208335876465\t0.004163336753845215\t0.0042194962501525875\t3595.4\t3595.4\t3595.4\n", "3650\t0.0020909190177917482\t0.003981173038482666\t0.004219639301300049\t3637.9\t3637.9\t3637.9\n", "3700\t0.002145850658416748\t0.004114139080047608\t0.004479420185089111\t3702.6\t3702.6\t3702.6\n", "3750\t0.0021128177642822264\t0.00405651330947876\t0.004445409774780274\t3742.45\t3742.45\t3742.45\n", "3800\t0.002277565002441406\t0.004412019252777099\t0.0047558069229125975\t3802.8\t3802.8\t3802.8\n", "3850\t0.002344977855682373\t0.0065471410751342775\t0.004765164852142334\t3859.1\t3859.1\t3859.1\n", "3900\t0.0023680210113525392\t0.004695427417755127\t0.0049642443656921385\t3898.3\t3898.3\t3898.3\n", "3950\t0.002626180648803711\t0.004949104785919189\t0.005251383781433106\t3954.25\t3954.25\t3954.25\n", "4000\t0.0023555994033813477\t0.004474353790283203\t0.004727542400360107\t4001.1\t4001.1\t4001.1\n", "4050\t0.002721571922302246\t0.005243539810180664\t0.005079710483551025\t4062.7\t4062.7\t4062.7\n", "4100\t0.0027304768562316896\t0.005181491374969482\t0.005000746250152588\t4091.65\t4091.65\t4091.65\n", "4150\t0.0027400732040405275\t0.0052215576171875\t0.00523759126663208\t4168.35\t4168.35\t4168.35\n", "4200\t0.0027820348739624025\t0.005287086963653565\t0.005396366119384766\t4193.3\t4193.3\t4193.3\n", "4250\t0.002623891830444336\t0.004721522331237793\t0.00491938591003418\t4260.95\t4260.95\t4260.95\n", "4300\t0.0027828216552734375\t0.004916548728942871\t0.005301547050476074\t4299.5\t4299.5\t4299.5\n", "4350\t0.002906489372253418\t0.004999625682830811\t0.005263972282409668\t4342.4\t4342.4\t4342.4\n", "4400\t0.002907097339630127\t0.005224800109863282\t0.005335009098052979\t4383.85\t4383.85\t4383.85\n", "4450\t0.0030006647109985353\t0.0050387740135192875\t0.005377638339996338\t4468.45\t4468.45\t4468.45\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "4500\t0.0030457139015197753\t0.005171358585357666\t0.005476009845733642\t4478.4\t4478.4\t4478.4\n", "4550\t0.003155803680419922\t0.005341684818267823\t0.005779421329498291\t4557.85\t4557.85\t4557.85\n", "4600\t0.003128659725189209\t0.005356144905090332\t0.005547094345092774\t4582.55\t4582.55\t4582.55\n", "4650\t0.0031958937644958494\t0.005311727523803711\t0.005708253383636475\t4643.5\t4643.5\t4643.5\n", "4700\t0.0032829642295837402\t0.005523812770843506\t0.006183731555938721\t4680.15\t4680.15\t4680.15\n", "4750\t0.003353011608123779\t0.007384288311004639\t0.005582451820373535\t4760.55\t4760.55\t4760.55\n", "4800\t0.003184044361114502\t0.005216073989868164\t0.005514955520629883\t4791.85\t4791.85\t4791.85\n", "4850\t0.003285837173461914\t0.005474960803985596\t0.005704307556152343\t4841.6\t4841.6\t4841.6\n", "4900\t0.0035014629364013674\t0.005639922618865967\t0.006063520908355713\t4897.9\t4897.9\t4897.9\n", "4950\t0.0037479519844055174\t0.006180095672607422\t0.006394350528717041\t4959.9\t4959.9\t4959.9\n", "5000\t0.0036728620529174806\t0.005781984329223633\t0.006223893165588379\t5011.25\t5011.25\t5011.25\n", "5050\t0.003826427459716797\t0.006108903884887695\t0.006628561019897461\t5029.45\t5029.45\t5029.45\n", "5100\t0.003795015811920166\t0.005878627300262451\t0.006110990047454834\t5098.25\t5098.25\t5098.25\n", "5150\t0.0038227915763854982\t0.0060370564460754395\t0.006328094005584717\t5142.1\t5142.1\t5142.1\n", "5200\t0.004015934467315674\t0.005974817276000977\t0.006374096870422364\t5182.6\t5182.6\t5182.6\n", "5250\t0.003956937789916992\t0.006087672710418701\t0.006541621685028076\t5227.35\t5227.35\t5227.35\n", "5300\t0.004029691219329834\t0.006212878227233887\t0.006524670124053955\t5316.2\t5316.2\t5316.2\n", "5350\t0.003991234302520752\t0.006243932247161865\t0.0064528465270996095\t5351.0\t5351.0\t5351.0\n", "5400\t0.004080522060394287\t0.00609900951385498\t0.006679570674896241\t5396.95\t5396.95\t5396.95\n", "5450\t0.004048550128936767\t0.006114745140075683\t0.006408846378326416\t5465.6\t5465.6\t5465.6\n", "5500\t0.004099690914154052\t0.005972075462341309\t0.006341814994812012\t5505.6\t5505.6\t5505.6\n", "5550\t0.004110205173492432\t0.0060768604278564455\t0.006409943103790283\t5561.75\t5561.75\t5561.75\n", "5600\t0.004223275184631348\t0.006198155879974365\t0.006587684154510498\t5607.1\t5607.1\t5607.1\n", "5650\t0.0049591064453125\t0.006876540184020996\t0.0074416399002075195\t5641.45\t5641.45\t5641.45\n", "5700\t0.004616546630859375\t0.0064598917961120605\t0.006877529621124268\t5698.95\t5698.95\t5698.95\n", "5750\t0.004575097560882568\t0.006407392024993896\t0.009182405471801759\t5746.05\t5746.05\t5746.05\n", "5800\t0.004912221431732177\t0.00713346004486084\t0.007436096668243408\t5786.05\t5786.05\t5786.05\n", "5850\t0.004711925983428955\t0.006736207008361817\t0.007124912738800049\t5862.0\t5862.0\t5862.0\n", "5900\t0.004904627799987793\t0.006648445129394531\t0.0073832511901855465\t5913.1\t5913.1\t5913.1\n", "5950\t0.005011129379272461\t0.0070386528968811035\t0.0072724223136901855\t5956.85\t5956.85\t5956.85\n", "6000\t0.005175864696502686\t0.0071688532829284664\t0.007373917102813721\t5995.8\t5995.8\t5995.8\n", "6050\t0.005156290531158447\t0.006819391250610351\t0.007523894309997559\t6063.9\t6063.9\t6063.9\n", "6100\t0.00511319637298584\t0.007043910026550293\t0.007499814033508301\t6077.15\t6077.15\t6077.15\n", "6150\t0.005205225944519043\t0.006990587711334229\t0.007502913475036621\t6142.5\t6142.5\t6142.5\n", "6200\t0.005306124687194824\t0.007158756256103516\t0.0077056407928466795\t6236.35\t6236.35\t6236.35\n", "6250\t0.005539906024932861\t0.0073461771011352536\t0.00788034200668335\t6229.3\t6229.3\t6229.3\n", "6300\t0.005721747875213623\t0.007475543022155762\t0.007986211776733398\t6320.55\t6320.55\t6320.55\n", "6350\t0.005578958988189697\t0.007264912128448486\t0.0078072786331176754\t6345.5\t6345.5\t6345.5\n", "6400\t0.005727994441986084\t0.007305669784545899\t0.007949352264404297\t6376.65\t6376.65\t6376.65\n", "6450\t0.0060314774513244625\t0.00767127275466919\t0.00835268497467041\t6448.5\t6448.5\t6448.5\n", "6500\t0.005675506591796875\t0.0072650909423828125\t0.00764247179031372\t6499.1\t6499.1\t6499.1\n", "6550\t0.005531048774719239\t0.0071501612663269045\t0.007600772380828858\t6537.9\t6537.9\t6537.9\n", "6600\t0.005685162544250488\t0.0071737408638000485\t0.007736349105834961\t6593.55\t6593.55\t6593.55\n", "6650\t0.005739068984985352\t0.0072381854057312015\t0.007772767543792724\t6622.75\t6622.75\t6622.75\n", "6700\t0.006172692775726319\t0.007779645919799805\t0.008395695686340332\t6715.35\t6715.35\t6715.35\n", "6750\t0.006449925899505615\t0.00807034969329834\t0.008807957172393799\t6769.4\t6769.4\t6769.4\n", "6800\t0.006199336051940918\t0.009791207313537598\t0.008230805397033691\t6774.0\t6774.0\t6774.0\n", "6850\t0.0060757756233215336\t0.007526195049285889\t0.007941532135009765\t6827.05\t6827.05\t6827.05\n", "6900\t0.006086421012878418\t0.00744318962097168\t0.008029139041900635\t6917.05\t6917.05\t6917.05\n", "6950\t0.006174623966217041\t0.007522189617156982\t0.008061826229095459\t6966.85\t6966.85\t6966.85\n", "7000\t0.006180226802825928\t0.007629692554473877\t0.0080613374710083\t7008.8\t7008.8\t7008.8\n", "7050\t0.006349396705627441\t0.007513260841369629\t0.008082342147827149\t7038.8\t7038.8\t7038.8\n", "7100\t0.006397271156311035\t0.007760524749755859\t0.008029913902282715\t7111.2\t7111.2\t7111.2\n", "7150\t0.006381821632385254\t0.007617175579071045\t0.008162474632263184\t7160.25\t7160.25\t7160.25\n", "7200\t0.006584584712982178\t0.007815253734588624\t0.00824599266052246\t7205.1\t7205.1\t7205.1\n", "7250\t0.006821811199188232\t0.007862222194671632\t0.00843186378479004\t7233.1\t7233.1\t7233.1\n", "7300\t0.0067970871925354\t0.007819259166717529\t0.008552277088165283\t7313.2\t7313.2\t7313.2\n", "7350\t0.0068026423454284664\t0.007956135272979736\t0.008601498603820801\t7363.55\t7363.55\t7363.55\n", "7400\t0.006949138641357422\t0.008137822151184082\t0.008505535125732423\t7387.9\t7387.9\t7387.9\n", "7450\t0.007089698314666748\t0.008114957809448242\t0.008672726154327393\t7452.8\t7452.8\t7452.8\n", "7500\t0.007174897193908692\t0.008072268962860108\t0.008703863620758057\t7466.85\t7466.85\t7466.85\n", "7550\t0.007059109210968017\t0.008178532123565674\t0.00868229866027832\t7550.8\t7550.8\t7550.8\n", "7600\t0.007219445705413818\t0.008230483531951905\t0.008815896511077882\t7575.95\t7575.95\t7575.95\n", "7650\t0.007495367527008056\t0.008463549613952636\t0.009330236911773681\t7654.5\t7654.5\t7654.5\n", "7700\t0.007504940032958984\t0.008266627788543701\t0.00894942283630371\t7710.05\t7710.05\t7710.05\n", "7750\t0.007653665542602539\t0.008419620990753173\t0.00894070863723755\t7771.05\t7771.05\t7771.05\n", "7800\t0.007846426963806153\t0.008884930610656738\t0.009431827068328857\t7814.45\t7814.45\t7814.45\n", "7850\t0.007892310619354248\t0.009034287929534913\t0.009403395652770995\t7851.2\t7851.2\t7851.2\n", "7900\t0.007868218421936034\t0.008979427814483642\t0.009264528751373291\t7878.95\t7878.95\t7878.95\n", "7950\t0.008168137073516846\t0.008738279342651367\t0.00949254035949707\t7943.7\t7943.7\t7943.7\n", "8000\t0.008193707466125489\t0.008772134780883789\t0.009485733509063721\t7995.9\t7995.9\t7995.9\n", "8050\t0.008433032035827636\t0.009355056285858154\t0.009859347343444824\t8037.85\t8037.85\t8037.85\n", "8100\t0.008460927009582519\t0.00917818546295166\t0.00962315797805786\t8087.5\t8087.5\t8087.5\n", "8150\t0.008541667461395263\t0.009138715267181397\t0.010072624683380127\t8127.5\t8127.5\t8127.5\n", "8200\t0.008611941337585449\t0.009033119678497315\t0.00985175371170044\t8204.85\t8204.85\t8204.85\n", "8250\t0.008619415760040283\t0.00907151699066162\t0.009666061401367188\t8262.7\t8262.7\t8262.7\n", "8300\t0.008783864974975585\t0.009142649173736573\t0.009958302974700928\t8343.05\t8343.05\t8343.05\n", "8350\t0.008717727661132813\t0.009400033950805664\t0.009843921661376953\t8360.55\t8360.55\t8360.55\n", "8400\t0.00886390209197998\t0.009317481517791748\t0.009997069835662842\t8386.35\t8386.35\t8386.35\n", "8450\t0.00905764102935791\t0.009361803531646729\t0.010091614723205567\t8481.55\t8481.55\t8481.55\n", "8500\t0.009223926067352294\t0.009427809715270996\t0.010102975368499755\t8508.65\t8508.65\t8508.65\n", "8550\t0.009419131278991699\t0.009661269187927247\t0.010600733757019042\t8573.45\t8573.45\t8573.45\n", "8600\t0.009417712688446045\t0.00951756238937378\t0.010277032852172852\t8616.0\t8616.0\t8616.0\n", "8650\t0.00929340124130249\t0.00938650369644165\t0.01015012264251709\t8627.75\t8627.75\t8627.75\n", "8700\t0.009772396087646485\t0.009746146202087403\t0.010767102241516113\t8710.3\t8710.3\t8710.3\n", "8750\t0.010090315341949463\t0.010228586196899415\t0.010838687419891357\t8766.5\t8766.5\t8766.5\n", "8800\t0.009993135929107666\t0.009889721870422363\t0.010603618621826173\t8797.6\t8797.6\t8797.6\n", "8850\t0.009991216659545898\t0.009811413288116456\t0.010665643215179443\t8823.65\t8823.65\t8823.65\n", "8900\t0.010328078269958496\t0.009954047203063966\t0.011016619205474854\t8916.55\t8916.55\t8916.55\n", "8950\t0.010385310649871827\t0.010278379917144776\t0.010911047458648682\t8950.5\t8950.5\t8950.5\n", "9000\t0.010400152206420899\t0.010072815418243408\t0.01104656457901001\t9014.1\t9014.1\t9014.1\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "9050\t0.01071866750717163\t0.010353124141693116\t0.011311757564544677\t9055.75\t9055.75\t9055.75\n", "9100\t0.010861194133758545\t0.010565590858459473\t0.011523723602294922\t9100.4\t9100.4\t9100.4\n", "9150\t0.010745608806610107\t0.01028205156326294\t0.011208140850067138\t9159.45\t9159.45\t9159.45\n", "9200\t0.011226022243499756\t0.010832691192626953\t0.011613202095031739\t9197.0\t9197.0\t9197.0\n", "9250\t0.01081315279006958\t0.01042952537536621\t0.011233901977539063\t9266.0\t9266.0\t9266.0\n", "9300\t0.010835695266723632\t0.010242033004760741\t0.01103801727294922\t9294.3\t9294.3\t9294.3\n", "9350\t0.010805296897888183\t0.010170280933380127\t0.01097111701965332\t9319.05\t9319.05\t9319.05\n", "9400\t0.011146724224090576\t0.01058337688446045\t0.01150122880935669\t9368.6\t9368.6\t9368.6\n", "9450\t0.011361896991729736\t0.010788464546203613\t0.011538565158843994\t9462.2\t9462.2\t9462.2\n", "9500\t0.011593127250671386\t0.010672259330749511\t0.011846554279327393\t9524.6\t9524.6\t9524.6\n", "9550\t0.011635160446166993\t0.010614848136901856\t0.011839807033538818\t9545.05\t9545.05\t9545.05\n", "9600\t0.011655700206756592\t0.010699832439422607\t0.011880803108215331\t9594.25\t9594.25\t9594.25\n", "9650\t0.011813747882843017\t0.011073219776153564\t0.014021635055541992\t9679.1\t9679.1\t9679.1\n", "9700\t0.012312555313110351\t0.011362862586975098\t0.012297868728637695\t9715.85\t9715.85\t9715.85\n", "9750\t0.01212923526763916\t0.011235225200653075\t0.012221109867095948\t9728.85\t9728.85\t9728.85\n", "9800\t0.012249469757080078\t0.011185383796691895\t0.012247145175933838\t9815.35\t9815.35\t9815.35\n", "9850\t0.012271690368652343\t0.011099123954772949\t0.012077271938323975\t9821.2\t9821.2\t9821.2\n", "9900\t0.012409532070159912\t0.011049628257751465\t0.011797690391540527\t9913.5\t9913.5\t9913.5\n", "9950\t0.012400150299072266\t0.011115562915802003\t0.012100446224212646\t9973.9\t9973.9\t9973.9\n", "10000\t0.012705600261688233\t0.011352503299713134\t0.012198817729949952\t9994.3\t9994.3\t9994.3\n", "10050\t0.01290128231048584\t0.011428546905517579\t0.0123848557472229\t10086.3\t10086.3\t10086.3\n", "10100\t0.012935566902160644\t0.011328840255737304\t0.012571203708648681\t10125.35\t10125.35\t10125.35\n", "10150\t0.013153886795043946\t0.011760091781616211\t0.01261756420135498\t10161.55\t10161.55\t10161.55\n", "10200\t0.01314014196395874\t0.011317908763885498\t0.012277829647064208\t10209.9\t10209.9\t10209.9\n", "10250\t0.013112449645996093\t0.011325621604919433\t0.012194275856018066\t10240.35\t10240.35\t10240.35\n", "10300\t0.012884736061096191\t0.011153852939605713\t0.014146983623504639\t10293.35\t10293.35\t10293.35\n", "10350\t0.013447451591491699\t0.011504924297332764\t0.01242607831954956\t10343.55\t10343.55\t10343.55\n", "10400\t0.013416790962219238\t0.011567640304565429\t0.012650370597839355\t10436.65\t10436.65\t10436.65\n", "10450\t0.013433146476745605\t0.011367976665496826\t0.012719047069549561\t10441.9\t10441.9\t10441.9\n", "10500\t0.014019465446472168\t0.012130415439605713\t0.012851297855377197\t10504.15\t10504.15\t10504.15\n", "10550\t0.014068257808685303\t0.01205977201461792\t0.01314249038696289\t10557.55\t10557.55\t10557.55\n", "10600\t0.014162373542785645\t0.011918628215789795\t0.013253319263458251\t10629.5\t10629.5\t10629.5\n", "10650\t0.014048385620117187\t0.011785900592803955\t0.012935245037078857\t10647.95\t10647.95\t10647.95\n", "10700\t0.014151287078857423\t0.012203395366668701\t0.012833607196807862\t10681.75\t10681.75\t10681.75\n", "10750\t0.01477673053741455\t0.01236504316329956\t0.013653290271759034\t10752.1\t10752.1\t10752.1\n", "10800\t0.015023148059844971\t0.012580621242523193\t0.013705933094024658\t10781.35\t10781.35\t10781.35\n", "10850\t0.015095722675323487\t0.014934718608856201\t0.01378633975982666\t10860.75\t10860.75\t10860.75\n", "10900\t0.01477971076965332\t0.012305748462677003\t0.013302755355834962\t10924.25\t10924.25\t10924.25\n", "10950\t0.0149788498878479\t0.01234978437423706\t0.013282501697540283\t10927.8\t10927.8\t10927.8\n", "11000\t0.014970231056213378\t0.01247091293334961\t0.013186705112457276\t10940.75\t10940.75\t10940.75\n", "11050\t0.015041005611419678\t0.012275362014770507\t0.013121354579925536\t11012.4\t11012.4\t11012.4\n", "11100\t0.015079545974731445\t0.012165224552154541\t0.013264620304107666\t11089.2\t11089.2\t11089.2\n", "11150\t0.015326976776123047\t0.012274682521820068\t0.013670229911804199\t11177.6\t11177.6\t11177.6\n", "11200\t0.015326118469238282\t0.012376737594604493\t0.013536715507507324\t11198.75\t11198.75\t11198.75\n", "11250\t0.015569937229156495\t0.012537860870361328\t0.013645923137664795\t11275.95\t11275.95\t11275.95\n", "11300\t0.015556406974792481\t0.012412631511688232\t0.013320863246917725\t11262.45\t11262.45\t11262.45\n", "11350\t0.01593024730682373\t0.012791383266448974\t0.014016306400299073\t11322.25\t11322.25\t11322.25\n", "11400\t0.01608123779296875\t0.012978529930114746\t0.014114975929260254\t11410.8\t11410.8\t11410.8\n", "11450\t0.015757882595062257\t0.012485718727111817\t0.013580453395843507\t11432.9\t11432.9\t11432.9\n", "11500\t0.01620405912399292\t0.012744879722595215\t0.013701808452606202\t11495.45\t11495.45\t11495.45\n", "11550\t0.016228532791137694\t0.013153457641601562\t0.013926053047180175\t11550.6\t11550.6\t11550.6\n", "11600\t0.016383516788482665\t0.012706422805786132\t0.013937342166900634\t11619.15\t11619.15\t11619.15\n", "11650\t0.016525304317474364\t0.012708950042724609\t0.013857948780059814\t11676.3\t11676.3\t11676.3\n", "11700\t0.016725099086761473\t0.012832164764404297\t0.013988018035888672\t11704.3\t11704.3\t11704.3\n", "11750\t0.016788816452026366\t0.012840735912322997\t0.013906764984130859\t11768.65\t11768.65\t11768.65\n", "11800\t0.0169050931930542\t0.012905144691467285\t0.014354979991912842\t11836.2\t11836.2\t11836.2\n", "11850\t0.01689434051513672\t0.013284969329833984\t0.014191484451293946\t11828.75\t11828.75\t11828.75\n", "11900\t0.01713418960571289\t0.013906967639923096\t0.014685213565826416\t11856.2\t11856.2\t11856.2\n", "11950\t0.017403388023376466\t0.013374364376068116\t0.014297914505004884\t11936.5\t11936.5\t11936.5\n", "12000\t0.017277979850769044\t0.013469505310058593\t0.014542829990386964\t11993.5\t11993.5\t11993.5\n", "12050\t0.018415307998657225\t0.014435064792633057\t0.015370714664459228\t12064.65\t12064.65\t12064.65\n", "12100\t0.01815711259841919\t0.014288926124572754\t0.015004169940948487\t12088.3\t12088.3\t12088.3\n", "12150\t0.018206119537353516\t0.013563585281372071\t0.014789974689483643\t12151.85\t12151.85\t12151.85\n", "12200\t0.01811091899871826\t0.01364070177078247\t0.014821672439575195\t12198.4\t12198.4\t12198.4\n", "12250\t0.018612992763519288\t0.014108645915985107\t0.015192699432373048\t12258.15\t12258.15\t12258.15\n", "12300\t0.01964271068572998\t0.014312374591827392\t0.015660834312438966\t12322.45\t12322.45\t12322.45\n", "12350\t0.018566668033599854\t0.013711845874786377\t0.014933741092681885\t12373.15\t12373.15\t12373.15\n", "12400\t0.019216430187225342\t0.014540517330169677\t0.015495777130126953\t12398.0\t12398.0\t12398.0\n", "12450\t0.019633400440216064\t0.014738631248474122\t0.015375828742980957\t12421.9\t12421.9\t12421.9\n", "12500\t0.019260978698730467\t0.014013254642486572\t0.015259158611297608\t12509.7\t12509.7\t12509.7\n", "12550\t0.019350814819335937\t0.014216804504394531\t0.015586721897125243\t12550.1\t12550.1\t12550.1\n" ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[0;32m/tmp/ipykernel_1249671/242359474.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 30\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[0mstart\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 32\u001b[0;31m \u001b[0mmod3_copying_doubly_linked_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest_doubly_n\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 33\u001b[0m \u001b[0mruntime_doubly\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mstart\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 34\u001b[0m \u001b[0mlist_lengths_doubly\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0mtest_linked_n\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlength\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/tmp/ipykernel_1249671/2001137605.py\u001b[0m in \u001b[0;36mmod3_copying_doubly_linked_list\u001b[0;34m(linked_list)\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[0;31m# now traverse the remainder of the list\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0;31m#\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 76\u001b[0;31m \u001b[0;32mwhile\u001b[0m \u001b[0miterator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhas_next\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 77\u001b[0m \u001b[0mprevious_node\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0miterator\u001b[0m \u001b[0;31m# for \"pop_after\", to detach the present element, we need the previous node\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[0miterator\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0miterator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_next\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/tmp/ipykernel_1249671/3827711092.py\u001b[0m in \u001b[0;36mhas_next\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 163\u001b[0m \u001b[0;31m#\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 164\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mhas_next\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 165\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_next\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 166\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 167\u001b[0m \u001b[0;31m# returns True if there is a previous element, false if the previous\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "import time\n", "import random\n", "\n", "step = 50\n", "nmax = 20000\n", "repetitions = 20\n", "\n", "perf_dynarray, perf_linked, perf_doubly = {}, {}, {}\n", "random.seed()\n", "\n", "for n in range(0, nmax+1, step):\n", " runtime_dynarray, runtime_linked, runtime_doubly = 0.0, 0.0, 0.0\n", " list_lengths_dynarray, list_lengths_linked, list_lengths_doubly = 0, 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", " test_doubly_n = DoublyLinkedList()\n", " test_doubly_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", " start = time.time()\n", " mod3_copying_doubly_linked_list(test_doubly_n)\n", " runtime_doubly += time.time() - start\n", " list_lengths_doubly += test_linked_n.length()\n", " \n", " perf_dynarray[n] = runtime_dynarray / repetitions\n", " perf_linked[n] = runtime_linked / repetitions\n", " perf_doubly[n] = runtime_doubly / repetitions\n", " \n", " print(n, perf_dynarray[n], perf_linked[n], perf_doubly[n], \\\n", " list_lengths_dynarray/repetitions, list_lengths_linked/repetitions, \\\n", " list_lengths_doubly/repetitions, sep='\\t')" ] }, { "cell_type": "code", "execution_count": 13, "id": "e409cb0e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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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", "keylist_doubly = list(perf_doubly.keys())\n", "vallist_doubly = list(perf_doubly.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\n", "sbn.regplot(x=keylist_doubly, y=vallist_doubly, color='#ff0000', \\\n", " order=1, scatter_kws={'s':5}) # red for doubly-linked list" ] }, { "cell_type": "code", "execution_count": null, "id": "54bf3f5e", "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 }