{ "cells": [ { "cell_type": "code", "execution_count": 36, "id": "1d740710", "metadata": {}, "outputs": [], "source": [ "# argument: a list of numbers\n", "#\n", "# outcome: the elements in the list are sorted; no return value\n", "#\n", "def insertion_sort_v1_debug(x, debug_flag):\n", " \n", " # invariant:\n", " # at the beginning of iteration i, x[0:i] is sorted\n", " # effect of one iteration:\n", " # x[i] is moved to the appropriate position such that x[0: i+1] becomes sorted\n", " #\n", " for i in range(len(x)):\n", " j = 0\n", " element_i = x[i]\n", " while x[j] < element_i and j < i: # all these elements should stay left of x[i]\n", " j += 1\n", " if i != j:\n", " x.pop(i)\n", " x.insert(j, element_i)\n", " if(debug_flag):\n", " print(\"Breakpoint; invariant: Sublist x[0:\", i+1, \"] is sorted;\\n\"\\\n", " \"Sorted part of the list: \", x[:i+1], \"\\nUnsorted part of the list: \", x[i+1:], sep=\"\")\n", " input()\n", " \n", "def insertion_sort_v1(x):\n", " insertion_sort_v1_debug(x, False)" ] }, { "cell_type": "code", "execution_count": 17, "id": "917b6b51", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test list: [36, 36, 27, 78, 48, 55, 7, 53, 78, 30, 54]\n", "\n", "Breakpoint; invariant: Sublist x[0:1] is sorted;\n", "Sorted part of the list: [36]\n", "Unsorted part of the list: [36, 27, 78, 48, 55, 7, 53, 78, 30, 54]\n", "\n", "Breakpoint; invariant: Sublist x[0:2] is sorted;\n", "Sorted part of the list: [36, 36]\n", "Unsorted part of the list: [27, 78, 48, 55, 7, 53, 78, 30, 54]\n", "\n", "Breakpoint; invariant: Sublist x[0:3] is sorted;\n", "Sorted part of the list: [27, 36, 36]\n", "Unsorted part of the list: [78, 48, 55, 7, 53, 78, 30, 54]\n", "\n", "Breakpoint; invariant: Sublist x[0:4] is sorted;\n", "Sorted part of the list: [27, 36, 36, 78]\n", "Unsorted part of the list: [48, 55, 7, 53, 78, 30, 54]\n", "\n", "Breakpoint; invariant: Sublist x[0:5] is sorted;\n", "Sorted part of the list: [27, 36, 36, 48, 78]\n", "Unsorted part of the list: [55, 7, 53, 78, 30, 54]\n", "\n", "Breakpoint; invariant: Sublist x[0:6] is sorted;\n", "Sorted part of the list: [27, 36, 36, 48, 55, 78]\n", "Unsorted part of the list: [7, 53, 78, 30, 54]\n", "\n", "Breakpoint; invariant: Sublist x[0:7] is sorted;\n", "Sorted part of the list: [7, 27, 36, 36, 48, 55, 78]\n", "Unsorted part of the list: [53, 78, 30, 54]\n", "\n", "Breakpoint; invariant: Sublist x[0:8] is sorted;\n", "Sorted part of the list: [7, 27, 36, 36, 48, 53, 55, 78]\n", "Unsorted part of the list: [78, 30, 54]\n", "\n", "Breakpoint; invariant: Sublist x[0:9] is sorted;\n", "Sorted part of the list: [7, 27, 36, 36, 48, 53, 55, 78, 78]\n", "Unsorted part of the list: [30, 54]\n", "\n", "Breakpoint; invariant: Sublist x[0:10] is sorted;\n", "Sorted part of the list: [7, 27, 30, 36, 36, 48, 53, 55, 78, 78]\n", "Unsorted part of the list: [54]\n", "\n", "Breakpoint; invariant: Sublist x[0:11] is sorted;\n", "Sorted part of the list: [7, 27, 30, 36, 36, 48, 53, 54, 55, 78, 78]\n", "Unsorted part of the list: []\n", "\n", "Test list: [7, 27, 30, 36, 36, 48, 53, 54, 55, 78, 78]\n" ] } ], "source": [ "import random\n", "\n", "n = 11\n", "test_list_n = [random.randrange(n*n) for j in range(n)]\n", "print(\"Test list:\", test_list_n, end=\"\\n\\n\")\n", "insertion_sort_v1_debug(test_list_n, True)\n", "print(\"Test list:\", test_list_n)" ] }, { "cell_type": "code", "execution_count": 37, "id": "6e30fdb9", "metadata": {}, "outputs": [], "source": [ "# arguments:\n", "# * a list of numbers x\n", "# * an index i such that x[0:i] is sorted\n", "# * a number new_element\n", "#\n", "# return value:\n", "# * the index j between 0 and i such that all elements of x[0:j] are smaller than new_element,\n", "# while x[j] is greater or equal to new_element, or if no such x[j] exists, j equals i\n", "\n", "def insertion_index_binary_search(x, i, new_element, debug_flag):\n", " idx_min, idx_max = 0, i\n", " while idx_max > idx_min:\n", " idx_mid = (idx_min + idx_max) // 2 # due to integer arithmetics, idx_mid can never be i\n", " \n", " if debug_flag:\n", " print(\"Evaluating x[\", idx_min, \":\", idx_max, \"] = \", x[idx_min:idx_max], sep=\"\")\n", " print(\"Middle index \", idx_mid, \" with x[\", idx_mid, \"] = \", x[idx_mid], sep=\"\")\n", " input()\n", " \n", " if x[idx_mid] < new_element: # correct index is between idx_mid+1 and idx_max\n", " idx_min = idx_mid+1\n", " else: # correct index is between idx_min and idx_mid\n", " idx_max = idx_mid\n", "\n", " # after the loop ends, idx_min = idx_max can be returned\n", " #\n", " if debug_flag:\n", " print(\"Index\", idx_min, \"specified for insertion\")\n", " return idx_min" ] }, { "cell_type": "code", "execution_count": 29, "id": "17cd0fcb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Pre-sorted test list: [6, 156, 244, 288, 366, 411, 420, 441, 559, 603, 618, 781, 799, 801, 894, 960, 962, 1050, 1062, 1064, 1073, 1182, 1259, 1338, 1398, 1434, 1440, 1469, 1511, 1511, 1539, 1560, 1619, 1620, 1625, 1720, 1737, 1815, 1930, 1947, 1962, 1963, 2009, 2138, 2311, 2360, 2365, 2432, 2462, 2491]\n", "New element: 1696\n", "\n", "Evaluating x[0:50] = [6, 156, 244, 288, 366, 411, 420, 441, 559, 603, 618, 781, 799, 801, 894, 960, 962, 1050, 1062, 1064, 1073, 1182, 1259, 1338, 1398, 1434, 1440, 1469, 1511, 1511, 1539, 1560, 1619, 1620, 1625, 1720, 1737, 1815, 1930, 1947, 1962, 1963, 2009, 2138, 2311, 2360, 2365, 2432, 2462, 2491]\n", "Middle index 25 with x[25] = 1434\n", "\n", "Evaluating x[26:50] = [1440, 1469, 1511, 1511, 1539, 1560, 1619, 1620, 1625, 1720, 1737, 1815, 1930, 1947, 1962, 1963, 2009, 2138, 2311, 2360, 2365, 2432, 2462, 2491]\n", "Middle index 38 with x[38] = 1930\n", "\n", "Evaluating x[26:38] = [1440, 1469, 1511, 1511, 1539, 1560, 1619, 1620, 1625, 1720, 1737, 1815]\n", "Middle index 32 with x[32] = 1619\n", "\n", "Evaluating x[33:38] = [1620, 1625, 1720, 1737, 1815]\n", "Middle index 35 with x[35] = 1720\n", "\n", "Evaluating x[33:35] = [1620, 1625]\n", "Middle index 34 with x[34] = 1625\n", "\n", "Index 35 specified for insertion\n" ] } ], "source": [ "import random\n", "\n", "n = 50\n", "test_list_n = [random.randrange(n*n) for j in range(n)]\n", "mergesort(test_list_n)\n", "el = random.randrange(n*n)\n", "\n", "print(\"Pre-sorted test list:\", test_list_n)\n", "print(\"New element:\", el, end=\"\\n\\n\")\n", "j = insertion_index_binary_search(test_list_n, n, el, True)\n" ] }, { "cell_type": "code", "execution_count": 38, "id": "3914dfc1", "metadata": {}, "outputs": [], "source": [ "# argument: a list of numbers\n", "#\n", "# outcome: the elements in the list are sorted; no return value\n", "#\n", "def insertion_sort_v2_debug(x, debug_flag):\n", " \n", " # invariant:\n", " # at the beginning of iteration i, x[0:i] is sorted\n", " # effect of one iteration:\n", " # x[i] is moved to the appropriate position such that x[0: i+1] becomes sorted\n", " #\n", " for i in range(len(x)):\n", " j = 0\n", " element_i = x[i]\n", " j = insertion_index_binary_search(x, i, element_i, False)\n", " if i != j:\n", " x.pop(i)\n", " x.insert(j, element_i)\n", " if(debug_flag):\n", " print(\"Breakpoint; invariant: Sublist x[0:\", i+1, \"] is sorted;\\n\"\\\n", " \"Sorted part of the list: \", x[:i+1], \"\\nUnsorted part of the list: \", x[i+1:], sep=\"\")\n", " input()\n", " \n", "def insertion_sort_v2(x):\n", " insertion_sort_v2_debug(x, False)" ] }, { "cell_type": "code", "execution_count": 34, "id": "239230a1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test list: [40, 54, 58, 37, 106, 93, 88, 68, 80, 25, 23]\n", "\n", "Breakpoint; invariant: Sublist x[0:1] is sorted;\n", "Sorted part of the list: [40]\n", "Unsorted part of the list: [54, 58, 37, 106, 93, 88, 68, 80, 25, 23]\n", "\n", "Breakpoint; invariant: Sublist x[0:2] is sorted;\n", "Sorted part of the list: [40, 54]\n", "Unsorted part of the list: [58, 37, 106, 93, 88, 68, 80, 25, 23]\n", "\n", "Breakpoint; invariant: Sublist x[0:3] is sorted;\n", "Sorted part of the list: [40, 54, 58]\n", "Unsorted part of the list: [37, 106, 93, 88, 68, 80, 25, 23]\n", "\n", "Breakpoint; invariant: Sublist x[0:4] is sorted;\n", "Sorted part of the list: [37, 40, 54, 58]\n", "Unsorted part of the list: [106, 93, 88, 68, 80, 25, 23]\n", "\n", "Breakpoint; invariant: Sublist x[0:5] is sorted;\n", "Sorted part of the list: [37, 40, 54, 58, 106]\n", "Unsorted part of the list: [93, 88, 68, 80, 25, 23]\n", "\n", "Breakpoint; invariant: Sublist x[0:6] is sorted;\n", "Sorted part of the list: [37, 40, 54, 58, 93, 106]\n", "Unsorted part of the list: [88, 68, 80, 25, 23]\n", "\n", "Breakpoint; invariant: Sublist x[0:7] is sorted;\n", "Sorted part of the list: [37, 40, 54, 58, 88, 93, 106]\n", "Unsorted part of the list: [68, 80, 25, 23]\n", "\n", "Breakpoint; invariant: Sublist x[0:8] is sorted;\n", "Sorted part of the list: [37, 40, 54, 58, 68, 88, 93, 106]\n", "Unsorted part of the list: [80, 25, 23]\n", "\n", "Breakpoint; invariant: Sublist x[0:9] is sorted;\n", "Sorted part of the list: [37, 40, 54, 58, 68, 80, 88, 93, 106]\n", "Unsorted part of the list: [25, 23]\n", "\n", "Breakpoint; invariant: Sublist x[0:10] is sorted;\n", "Sorted part of the list: [25, 37, 40, 54, 58, 68, 80, 88, 93, 106]\n", "Unsorted part of the list: [23]\n", "\n", "Breakpoint; invariant: Sublist x[0:11] is sorted;\n", "Sorted part of the list: [23, 25, 37, 40, 54, 58, 68, 80, 88, 93, 106]\n", "Unsorted part of the list: []\n", "\n", "Test list: [23, 25, 37, 40, 54, 58, 68, 80, 88, 93, 106]\n" ] } ], "source": [ "import random\n", "\n", "n = 11\n", "test_list_n = [random.randrange(n*n) for j in range(n)]\n", "print(\"Test list:\", test_list_n, end=\"\\n\\n\")\n", "insertion_sort_v2_debug(test_list_n, True)\n", "print(\"Test list:\", test_list_n)" ] }, { "cell_type": "code", "execution_count": 39, "id": "58719c96", "metadata": {}, "outputs": [], "source": [ "def selection_sort_debug(x, debug_flag):\n", " for i in range(len(x)):\n", " min_idx = i\n", " for j in range(i+1, len(x)):\n", " if(x[j] < x[min_idx]):\n", " min_idx = j\n", " next_element = x.pop(min_idx)\n", " x.insert(i, next_element)\n", " if(debug_flag):\n", " print(\"Breakpoint; invariant: List sorted until index i = \", i, \";\\n\"\\\n", " \"All elements of the unsorted part are greater or equal than those in the sorted part.\\n\"\\\n", " \"Sorted part of the list: \", x[:i+1], \"\\nUnsorted part of the list: \", x[i+1:], sep=\"\")\n", " input()\n", " \n", "def selection_sort(x):\n", " selection_sort_debug(x, False)" ] }, { "cell_type": "code", "execution_count": 2, "id": "622231ea", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test list: [36, 12, 40, 37, 44, 51, 73, 31, 31, 47, 29]\n", "\n", "Breakpoint; invariant: List sorted until index i = 0;\n", "All elements of the unsorted part are greater or equal than those in the sorted part.\n", "Sorted part of the list: [12]\n", "Unsorted part of the list: [36, 40, 37, 44, 51, 73, 31, 31, 47, 29]\n", "\n", "Breakpoint; invariant: List sorted until index i = 1;\n", "All elements of the unsorted part are greater or equal than those in the sorted part.\n", "Sorted part of the list: [12, 29]\n", "Unsorted part of the list: [36, 40, 37, 44, 51, 73, 31, 31, 47]\n", "\n", "Breakpoint; invariant: List sorted until index i = 2;\n", "All elements of the unsorted part are greater or equal than those in the sorted part.\n", "Sorted part of the list: [12, 29, 31]\n", "Unsorted part of the list: [36, 40, 37, 44, 51, 73, 31, 47]\n", "\n", "Breakpoint; invariant: List sorted until index i = 3;\n", "All elements of the unsorted part are greater or equal than those in the sorted part.\n", "Sorted part of the list: [12, 29, 31, 31]\n", "Unsorted part of the list: [36, 40, 37, 44, 51, 73, 47]\n", "\n", "Breakpoint; invariant: List sorted until index i = 4;\n", "All elements of the unsorted part are greater or equal than those in the sorted part.\n", "Sorted part of the list: [12, 29, 31, 31, 36]\n", "Unsorted part of the list: [40, 37, 44, 51, 73, 47]\n", "\n", "Breakpoint; invariant: List sorted until index i = 5;\n", "All elements of the unsorted part are greater or equal than those in the sorted part.\n", "Sorted part of the list: [12, 29, 31, 31, 36, 37]\n", "Unsorted part of the list: [40, 44, 51, 73, 47]\n", "\n", "Breakpoint; invariant: List sorted until index i = 6;\n", "All elements of the unsorted part are greater or equal than those in the sorted part.\n", "Sorted part of the list: [12, 29, 31, 31, 36, 37, 40]\n", "Unsorted part of the list: [44, 51, 73, 47]\n", "\n", "Breakpoint; invariant: List sorted until index i = 7;\n", "All elements of the unsorted part are greater or equal than those in the sorted part.\n", "Sorted part of the list: [12, 29, 31, 31, 36, 37, 40, 44]\n", "Unsorted part of the list: [51, 73, 47]\n", "\n", "Breakpoint; invariant: List sorted until index i = 8;\n", "All elements of the unsorted part are greater or equal than those in the sorted part.\n", "Sorted part of the list: [12, 29, 31, 31, 36, 37, 40, 44, 47]\n", "Unsorted part of the list: [51, 73]\n", "\n", "Breakpoint; invariant: List sorted until index i = 9;\n", "All elements of the unsorted part are greater or equal than those in the sorted part.\n", "Sorted part of the list: [12, 29, 31, 31, 36, 37, 40, 44, 47, 51]\n", "Unsorted part of the list: [73]\n", "\n", "Breakpoint; invariant: List sorted until index i = 10;\n", "All elements of the unsorted part are greater or equal than those in the sorted part.\n", "Sorted part of the list: [12, 29, 31, 31, 36, 37, 40, 44, 47, 51, 73]\n", "Unsorted part of the list: []\n", "\n", "Test list: [12, 29, 31, 31, 36, 37, 40, 44, 47, 51, 73]\n" ] } ], "source": [ "import random\n", "\n", "n = 11\n", "test_list_n = [random.randrange(n*n) for j in range(n)]\n", "print(\"Test list:\", test_list_n, end=\"\\n\\n\")\n", "selection_sort_debug(test_list_n, True)\n", "print(\"Test list:\", test_list_n)" ] }, { "cell_type": "code", "execution_count": 40, "id": "f3863c1d", "metadata": {}, "outputs": [], "source": [ "def mergesort_debug(x, debug_flag):\n", " sublist_size = 1 # size of sublists, each of which has been sorted already\n", " while sublist_size < len(x):\n", " for offset in range(0, len(x) - sublist_size, 2*sublist_size):\n", " # we are now merging two sublists, one starting at offset, one starting at offset+sublist_size\n", " merged_sublist = []\n", " i = 0 # internal index defined over the first sublist\n", " j, second_sublist_size = 0, sublist_size # internal index defined over the second sublist\n", " if offset + 2*sublist_size > len(x):\n", " second_sublist_size = len(x) - offset - sublist_size # index must remain within boundaries\n", " if debug_flag:\n", " print(\"Now merging x[\", offset, \":\", offset+sublist_size, \"] = \", \\\n", " x[offset: offset+sublist_size], \" with x[\", offset+sublist_size, \":\", \\\n", " offset+sublist_size+second_sublist_size, \"] = \",\n", " x[offset+sublist_size: offset+sublist_size+second_sublist_size], sep='')\n", " \n", " while i < sublist_size and j < second_sublist_size:\n", " if(x[offset + i] < x[offset + sublist_size + j]):\n", " merged_sublist.append(x[offset + i])\n", " i += 1\n", " else:\n", " merged_sublist.append(x[offset + sublist_size + j])\n", " j += 1\n", " # one sublist is now exhausted, we only need to take care of this if it is the first one\n", " if i < sublist_size:\n", " for element in x[offset + i: offset + sublist_size]:\n", " merged_sublist.append(element)\n", " \n", " # now overwrite the two sublists with the merged sublist\n", " for i in range(len(merged_sublist)):\n", " x[offset+i] = merged_sublist[i]\n", " if debug_flag:\n", " print(\"Merged to x[\", offset, \":\", offset+sublist_size+second_sublist_size, \"] = \", \\\n", " x[offset: offset+sublist_size+second_sublist_size], sep = '')\n", " input()\n", " sublist_size *= 2\n", " \n", "def mergesort(x):\n", " mergesort_debug(x, False)" ] }, { "cell_type": "code", "execution_count": 4, "id": "7f1bd5ab", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test list: [100, 75, 112, 1, 60, 113, 7, 26, 59, 59, 38]\n", "\n", "Now merging x[0:1] = [100] with x[1:2] = [75]\n", "Merged to x[0:2] = [75, 100]\n", "\n", "Now merging x[2:3] = [112] with x[3:4] = [1]\n", "Merged to x[2:4] = [1, 112]\n", "\n", "Now merging x[4:5] = [60] with x[5:6] = [113]\n", "Merged to x[4:6] = [60, 113]\n", "\n", "Now merging x[6:7] = [7] with x[7:8] = [26]\n", "Merged to x[6:8] = [7, 26]\n", "\n", "Now merging x[8:9] = [59] with x[9:10] = [59]\n", "Merged to x[8:10] = [59, 59]\n", "\n", "Now merging x[0:2] = [75, 100] with x[2:4] = [1, 112]\n", "Merged to x[0:4] = [1, 75, 100, 112]\n", "\n", "Now merging x[4:6] = [60, 113] with x[6:8] = [7, 26]\n", "Merged to x[4:8] = [7, 26, 60, 113]\n", "\n", "Now merging x[8:10] = [59, 59] with x[10:11] = [38]\n", "Merged to x[8:11] = [38, 59, 59]\n", "\n", "Now merging x[0:4] = [1, 75, 100, 112] with x[4:8] = [7, 26, 60, 113]\n", "Merged to x[0:8] = [1, 7, 26, 60, 75, 100, 112, 113]\n", "\n", "Now merging x[0:8] = [1, 7, 26, 60, 75, 100, 112, 113] with x[8:11] = [38, 59, 59]\n", "Merged to x[0:11] = [1, 7, 26, 38, 59, 59, 60, 75, 100, 112, 113]\n", "\n", "Test list: [1, 7, 26, 38, 59, 59, 60, 75, 100, 112, 113]\n" ] } ], "source": [ "import random\n", "\n", "n = 11\n", "test_list_n = [random.randrange(n*n) for j in range(n)]\n", "print(\"Test list:\", test_list_n, end=\"\\n\\n\")\n", "mergesort_debug(test_list_n, True)\n", "print(\"Test list:\", test_list_n)" ] }, { "cell_type": "code", "execution_count": 48, "id": "353f2fdf", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\t1.049041748046875e-06\t7.152557373046875e-07\t7.62939453125e-07\t6.67572021484375e-07\n", "20\t1.354217529296875e-05\t1.4495849609375e-05\t1.7404556274414062e-05\t4.0578842163085935e-05\n", "40\t4.99725341796875e-05\t4.1437149047851565e-05\t6.709098815917968e-05\t0.00011157989501953125\n", "60\t0.0001388072967529297\t7.28607177734375e-05\t0.00016875267028808593\t0.00019936561584472657\n", "80\t0.0001399517059326172\t7.581710815429688e-05\t0.00020542144775390626\t0.00019750595092773437\n", "100\t0.00022473335266113282\t0.00010709762573242187\t0.0003182411193847656\t0.0003237724304199219\n", "120\t0.00045285224914550783\t0.00021390914916992189\t0.0007516384124755859\t0.0006191730499267578\n", "140\t0.0008403301239013672\t0.0002749919891357422\t0.0012289524078369141\t0.0007000446319580078\n", "160\t0.0010503292083740234\t0.0002960681915283203\t0.0012683868408203125\t0.0006961822509765625\n", "180\t0.0007679462432861328\t0.00023026466369628905\t0.0009827136993408204\t0.0005098342895507813\n", "200\t0.000994253158569336\t0.0002529621124267578\t0.0012764930725097656\t0.0005967140197753907\n", "220\t0.001262807846069336\t0.00027718544006347654\t0.0016027450561523437\t0.0007005214691162109\n", "240\t0.001237964630126953\t0.0002723217010498047\t0.0014711380004882812\t0.0006379127502441406\n", "260\t0.0013772964477539063\t0.00032358169555664064\t0.0017333507537841796\t0.0007578849792480469\n", "280\t0.0018863201141357422\t0.0003111839294433594\t0.0018613815307617187\t0.0008006095886230469\n", "300\t0.001705026626586914\t0.00034456253051757814\t0.002305459976196289\t0.0009531497955322266\n", "320\t0.0020943641662597655\t0.0004196643829345703\t0.0026189327239990235\t0.0009479045867919922\n", "340\t0.00220184326171875\t0.00041751861572265626\t0.002866506576538086\t0.001007413864135742\n", "360\t0.0027901649475097655\t0.0007380485534667969\t0.003843402862548828\t0.0011696815490722656\n", "380\t0.002860260009765625\t0.0004712581634521484\t0.0037358283996582033\t0.0011281967163085938\n", "400\t0.002970170974731445\t0.0004888057708740234\t0.0040757179260253905\t0.00123138427734375\n", "420\t0.003424263000488281\t0.0005323886871337891\t0.004563522338867187\t0.0013150215148925782\n", "440\t0.0036201000213623045\t0.0005641937255859375\t0.005135917663574218\t0.0014577865600585937\n", "460\t0.004275703430175781\t0.0006210803985595703\t0.006199312210083008\t0.001471710205078125\n", "480\t0.004448604583740234\t0.0006755828857421875\t0.005852031707763672\t0.001469898223876953\n", "500\t0.004842710494995117\t0.0006960868835449219\t0.006444311141967774\t0.0015589237213134766\n", "520\t0.0051456928253173825\t0.0007092952728271484\t0.007271528244018555\t0.0017629623413085937\n", "540\t0.0061572551727294925\t0.0007898330688476563\t0.007900285720825195\t0.00197749137878418\n", "560\t0.006791067123413086\t0.0007622718811035156\t0.008155918121337891\t0.0025618553161621095\n", "580\t0.007098770141601563\t0.0009024620056152343\t0.01000041961669922\t0.0022298812866210936\n", "600\t0.0073624134063720705\t0.0009681224822998047\t0.010262012481689453\t0.002245473861694336\n", "620\t0.008174657821655273\t0.0010221004486083984\t0.011667108535766602\t0.0023280620574951173\n", "640\t0.008904123306274414\t0.0009690284729003906\t0.012012863159179687\t0.0024599552154541014\n", "660\t0.008879899978637695\t0.0010151386260986329\t0.01151881217956543\t0.0023303985595703124\n", "680\t0.00962967872619629\t0.001237773895263672\t0.013570928573608398\t0.0024272441864013673\n", "700\t0.011068105697631836\t0.0010772705078125\t0.013590335845947266\t0.002456521987915039\n", "720\t0.010153627395629883\t0.0010897159576416016\t0.01354994773864746\t0.00253443717956543\n", "740\t0.011289072036743165\t0.0012084007263183593\t0.01468968391418457\t0.0026847362518310548\n", "760\t0.011671733856201173\t0.001185131072998047\t0.015546035766601563\t0.0026248931884765626\n", "780\t0.012313652038574218\t0.0012258529663085938\t0.016526460647583008\t0.0028848171234130858\n", "800\t0.01321396827697754\t0.0013614654541015624\t0.018152284622192382\t0.0028876304626464845\n", "820\t0.013230228424072265\t0.00131378173828125\t0.01733388900756836\t0.002864980697631836\n", "840\t0.014101314544677734\t0.001317453384399414\t0.01861748695373535\t0.0030450344085693358\n", "860\t0.015074205398559571\t0.0013866424560546875\t0.019761991500854493\t0.0032021522521972655\n", "880\t0.015869760513305665\t0.0015040397644042968\t0.021080970764160156\t0.003161764144897461\n", "900\t0.01646137237548828\t0.0016304969787597657\t0.022605037689208983\t0.0032758712768554688\n", "920\t0.017176342010498048\t0.001522970199584961\t0.022398710250854492\t0.003305196762084961\n", "940\t0.018387413024902342\t0.0016062736511230468\t0.025319957733154298\t0.0035608291625976564\n", "960\t0.01891350746154785\t0.0016017913818359374\t0.02487177848815918\t0.0035103797912597657\n", "980\t0.019911670684814455\t0.001694631576538086\t0.025681591033935545\t0.0036113739013671877\n", "1000\t0.02078876495361328\t0.0017560482025146484\t0.02781667709350586\t0.0038083553314208984\n", "1020\t0.021625852584838866\t0.0018275260925292968\t0.027918529510498048\t0.003869915008544922\n", "1040\t0.022200393676757812\t0.0018290996551513672\t0.02909116744995117\t0.004271841049194336\n", "1060\t0.024363994598388672\t0.0019526004791259766\t0.03178977966308594\t0.004442262649536133\n", "1080\t0.026745080947875977\t0.001969051361083984\t0.03332443237304687\t0.004388284683227539\n", "1100\t0.025908708572387695\t0.0020125865936279296\t0.03452291488647461\t0.004407548904418945\n", "1120\t0.025833559036254884\t0.0019536972045898437\t0.03475046157836914\t0.0044476032257080075\n", "1140\t0.027950811386108398\t0.0020165443420410156\t0.035002946853637695\t0.004446268081665039\n", "1160\t0.02841525077819824\t0.0020477294921875\t0.036440706253051756\t0.004558753967285156\n", "1180\t0.02865762710571289\t0.0021028041839599608\t0.03608684539794922\t0.004658842086791992\n", "1200\t0.030279541015625\t0.0026206493377685545\t0.03893747329711914\t0.004685592651367187\n", "1220\t0.031650972366333005\t0.0022704601287841797\t0.042211484909057614\t0.00487051010131836\n", "1240\t0.03500409126281738\t0.002559518814086914\t0.043433761596679686\t0.005106782913208008\n", "1260\t0.03509721755981445\t0.0023826122283935546\t0.044401359558105466\t0.005100631713867187\n", "1280\t0.0356849193572998\t0.002411651611328125\t0.04513692855834961\t0.005417346954345703\n", "1300\t0.0359921932220459\t0.0025083541870117186\t0.047065448760986325\t0.005121421813964844\n", "1320\t0.037618827819824216\t0.0026540756225585938\t0.049670171737670896\t0.005425405502319336\n", "1340\t0.03940415382385254\t0.0026641845703125\t0.04933342933654785\t0.005667448043823242\n", "1360\t0.03986105918884277\t0.0026375293731689454\t0.05111432075500488\t0.005282068252563476\n", "1380\t0.040528488159179685\t0.0027771949768066405\t0.05375266075134277\t0.005437517166137695\n", "1400\t0.04194431304931641\t0.0028223037719726563\t0.056204938888549806\t0.005731534957885742\n", "1420\t0.044175004959106444\t0.00338897705078125\t0.05639204978942871\t0.00578775405883789\n", "1440\t0.044478988647460936\t0.003014373779296875\t0.05761995315551758\t0.006735610961914063\n", "1460\t0.04560413360595703\t0.003034830093383789\t0.061774253845214844\t0.005969905853271484\n", "1480\t0.04777693748474121\t0.0031100749969482423\t0.06264610290527343\t0.00607147216796875\n", "1500\t0.050783395767211914\t0.0032331466674804686\t0.06534352302551269\t0.007134008407592774\n", "1520\t0.05093741416931152\t0.003242635726928711\t0.06612935066223144\t0.006132745742797851\n", "1540\t0.055183935165405276\t0.003360748291015625\t0.07186436653137207\t0.006744527816772461\n", "1560\t0.053722572326660153\t0.003324413299560547\t0.0663297176361084\t0.006469058990478516\n", "1580\t0.054737186431884764\t0.0032508373260498047\t0.06828174591064454\t0.0064351558685302734\n", "1600\t0.05758986473083496\t0.003423261642456055\t0.07336544990539551\t0.006799840927124023\n", "1620\t0.05566539764404297\t0.003290414810180664\t0.07417306900024415\t0.008157968521118164\n", "1640\t0.06144957542419434\t0.0035737991333007813\t0.07450280189514161\t0.006732559204101563\n", "1660\t0.061386919021606444\t0.0037471771240234373\t0.07969388961791993\t0.006903505325317383\n", "1680\t0.06264386177062989\t0.003726291656494141\t0.07820377349853516\t0.006992721557617187\n", "1700\t0.06363682746887207\t0.003862476348876953\t0.08284416198730468\t0.007016372680664062\n", "1720\t0.06676063537597657\t0.003783416748046875\t0.08583731651306152\t0.007146644592285156\n", "1740\t0.06707653999328614\t0.0037629127502441405\t0.08648953437805176\t0.007373380661010742\n", "1760\t0.07005763053894043\t0.004040288925170899\t0.09171533584594727\t0.007877922058105469\n", "1780\t0.07444801330566406\t0.004253244400024414\t0.0973322868347168\t0.007664632797241211\n", "1800\t0.07497496604919433\t0.004128646850585937\t0.09476475715637207\t0.008084392547607422\n", "1820\t0.07062578201293945\t0.003973913192749023\t0.08971343040466309\t0.007472372055053711\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "1840\t0.07361068725585937\t0.0041316509246826175\t0.09171662330627442\t0.007568836212158203\n", "1860\t0.07659425735473632\t0.0041983604431152345\t0.09642086029052735\t0.007804203033447266\n", "1880\t0.08269901275634765\t0.004408836364746094\t0.1001814365386963\t0.007979393005371094\n", "1900\t0.07951931953430176\t0.004476308822631836\t0.10189929008483886\t0.008151388168334961\n", "1920\t0.08132858276367187\t0.00453338623046875\t0.10211963653564453\t0.007878828048706054\n", "1940\t0.08248157501220703\t0.005248928070068359\t0.0996243953704834\t0.007864713668823242\n", "1960\t0.08299827575683594\t0.0053253173828125\t0.10119075775146484\t0.007798385620117187\n", "1980\t0.08693556785583496\t0.004466915130615234\t0.10453906059265136\t0.007979345321655274\n", "2000\t0.08665170669555664\t0.004555416107177734\t0.10628671646118164\t0.00821223258972168\n", "2020\t0.09264225959777832\t0.0047490596771240234\t0.11680364608764648\t0.008673334121704101\n", "2040\t0.09556217193603515\t0.004869413375854492\t0.11735334396362304\t0.008664989471435547\n", "2060\t0.09206748008728027\t0.004725217819213867\t0.11218767166137696\t0.009048223495483398\n", "2080\t0.09229483604431152\t0.004820394515991211\t0.11156744956970215\t0.009131908416748047\n", "2100\t0.0941554069519043\t0.004829263687133789\t0.11602826118469238\t0.009212303161621093\n", "2120\t0.0937659740447998\t0.004672622680664063\t0.11235756874084472\t0.009074926376342773\n", "2140\t0.09476566314697266\t0.004849386215209961\t0.11778273582458496\t0.009215927124023438\n", "2160\t0.09836101531982422\t0.0048919677734375\t0.12066426277160644\t0.009359025955200195\n", "2180\t0.09900503158569336\t0.004960823059082031\t0.12415847778320313\t0.009400272369384765\n", "2200\t0.10084648132324218\t0.00512080192565918\t0.12362966537475586\t0.009397220611572266\n", "2220\t0.10322327613830566\t0.005100440979003906\t0.1304152011871338\t0.009612751007080079\n", "2240\t0.11232099533081055\t0.005603599548339844\t0.14236044883728027\t0.010189342498779296\n", "2260\t0.1236541748046875\t0.005844211578369141\t0.15156617164611816\t0.010904741287231446\n", "2280\t0.11889119148254394\t0.005622148513793945\t0.14346070289611818\t0.010135555267333984\n", "2300\t0.12130985260009766\t0.005790090560913086\t0.1500974178314209\t0.010850763320922852\n", "2320\t0.12208800315856934\t0.005632925033569336\t0.1430202007293701\t0.010221624374389648\n", "2340\t0.11816506385803223\t0.005566930770874024\t0.148427152633667\t0.010186576843261718\n", "2360\t0.1225745677947998\t0.005728483200073242\t0.14948220252990724\t0.010477161407470703\n", "2380\t0.12600550651550294\t0.006066179275512696\t0.16350197792053223\t0.011168432235717774\n", "2400\t0.12808899879455565\t0.005913162231445312\t0.15983405113220214\t0.010996818542480469\n", "2420\t0.13713088035583496\t0.006305265426635742\t0.17181429862976075\t0.011464691162109375\n", "2440\t0.13757500648498536\t0.006531953811645508\t0.1683417797088623\t0.010982990264892578\n", "2460\t0.1348555564880371\t0.006141090393066406\t0.1609729290008545\t0.010914087295532227\n", "2480\t0.1327988624572754\t0.00615382194519043\t0.16234560012817384\t0.010859251022338867\n", "2500\t0.13549485206604003\t0.006249046325683594\t0.1651240825653076\t0.010906171798706055\n", "2520\t0.14625720977783202\t0.0064162731170654295\t0.16683449745178222\t0.01109938621520996\n", "2540\t0.14398508071899413\t0.006347179412841797\t0.1773758888244629\t0.011168193817138673\n", "2560\t0.15011186599731446\t0.006976795196533203\t0.1827991485595703\t0.011370563507080078\n", "2580\t0.14808263778686523\t0.006811714172363282\t0.18530879020690919\t0.011446666717529298\n", "2600\t0.15558781623840331\t0.006862020492553711\t0.19583964347839355\t0.01231842041015625\n", "2620\t0.1627521514892578\t0.007329607009887695\t0.20285453796386718\t0.012310361862182618\n", "2640\t0.16270155906677247\t0.007047605514526367\t0.1998447895050049\t0.012460803985595703\n", "2660\t0.16392903327941893\t0.007262086868286133\t0.19408273696899414\t0.011812973022460937\n", "2680\t0.16286520957946776\t0.007105445861816407\t0.19712629318237304\t0.012457275390625\n", "2700\t0.1792062282562256\t0.007712888717651367\t0.2064344882965088\t0.012560272216796875\n", "2720\t0.1693800926208496\t0.007446384429931641\t0.20373759269714356\t0.011977386474609376\n", "2740\t0.16142125129699708\t0.0070804119110107425\t0.20529704093933104\t0.012292718887329102\n", "2760\t0.18144774436950684\t0.007642889022827148\t0.2096632480621338\t0.012329196929931641\n", "2780\t0.17348880767822267\t0.007433414459228516\t0.21084065437316896\t0.012674331665039062\n", "2800\t0.17478437423706056\t0.0074179649353027345\t0.2086106300354004\t0.012642669677734374\n", "2820\t0.18205804824829103\t0.007704782485961914\t0.22961111068725587\t0.013040542602539062\n", "2840\t0.18933701515197754\t0.008201789855957032\t0.22955961227416993\t0.013191032409667968\n", "2860\t0.18206028938293456\t0.007834196090698242\t0.22080020904541015\t0.012730884552001952\n", "2880\t0.18597688674926757\t0.007806730270385742\t0.22448692321777344\t0.012782526016235352\n", "2900\t0.19372434616088868\t0.008101367950439453\t0.23872408866882325\t0.013475894927978516\n", "2920\t0.19817423820495605\t0.00826559066772461\t0.23331027030944823\t0.013203716278076172\n", "2940\t0.19720544815063476\t0.008642339706420898\t0.2442559242248535\t0.014078617095947266\n", "2960\t0.20229535102844237\t0.008433675765991211\t0.253734827041626\t0.013537883758544922\n", "2980\t0.19121026992797852\t0.0082244873046875\t0.23213138580322265\t0.01283416748046875\n", "3000\t0.20292372703552247\t0.008553457260131837\t0.25118865966796877\t0.013360166549682617\n", "3020\t0.19980144500732422\t0.008417177200317382\t0.24628329277038574\t0.01327686309814453\n", "3040\t0.20353589057922364\t0.008313941955566406\t0.24726576805114747\t0.013404321670532227\n", "3060\t0.20284500122070312\t0.008405017852783202\t0.25449314117431643\t0.013352251052856446\n", "3080\t0.20414981842041016\t0.008608245849609375\t0.2540578842163086\t0.01364884376525879\n", "3100\t0.20975089073181152\t0.008405685424804688\t0.2576648235321045\t0.01409010887145996\n", "3120\t0.21784462928771972\t0.009276008605957032\t0.2627138137817383\t0.014059638977050782\n", "3140\t0.21867132186889648\t0.00902400016784668\t0.2677892208099365\t0.014302206039428712\n", "3160\t0.2227013111114502\t0.009490966796875\t0.27602686882019045\t0.014797782897949219\n", "3180\t0.23379192352294922\t0.009550142288208007\t0.2854421138763428\t0.014937734603881836\n", "3200\t0.22805237770080566\t0.009256696701049805\t0.2772634506225586\t0.014453506469726563\n", "3220\t0.2316351890563965\t0.009166288375854491\t0.2739272117614746\t0.014213228225708007\n", "3240\t0.23638153076171875\t0.009304475784301759\t0.282898473739624\t0.014519739151000976\n", "3260\t0.22877902984619142\t0.009305238723754883\t0.2824770450592041\t0.014406204223632812\n", "3280\t0.23291540145874023\t0.009363842010498048\t0.28340811729431153\t0.014466571807861327\n", "3300\t0.22890667915344237\t0.009180974960327149\t0.28005290031433105\t0.014364194869995118\n", "3320\t0.2402637481689453\t0.009584617614746094\t0.2913073539733887\t0.014617300033569336\n", "3340\t0.24489879608154297\t0.009865713119506837\t0.29682016372680664\t0.015017461776733399\n", "3360\t0.24489426612854004\t0.009520626068115235\t0.2994675159454346\t0.014825916290283203\n", "3380\t0.25692024230957033\t0.009950685501098632\t0.3029815196990967\t0.015214061737060547\n", "3400\t0.2522275924682617\t0.009858655929565429\t0.30056238174438477\t0.014844512939453125\n", "3420\t0.25190372467041017\t0.009893846511840821\t0.30881729125976565\t0.014835929870605469\n", "3440\t0.25246272087097166\t0.00999765396118164\t0.3036664009094238\t0.015019416809082031\n", "3460\t0.2716052532196045\t0.01051645278930664\t0.3184006690979004\t0.0152252197265625\n", "3480\t0.26502346992492676\t0.010292148590087891\t0.3282949447631836\t0.015433788299560547\n", "3500\t0.2641750335693359\t0.010303926467895509\t0.31998600959777834\t0.01546635627746582\n", "3520\t0.28527488708496096\t0.01079263687133789\t0.3445438861846924\t0.015891313552856445\n", "3540\t0.28531465530395506\t0.01084914207458496\t0.3375025749206543\t0.01605539321899414\n", "3560\t0.28277955055236814\t0.010570096969604491\t0.3398865222930908\t0.015746068954467774\n", "3580\t0.293791389465332\t0.01099567413330078\t0.3511518478393555\t0.01629643440246582\n", "3600\t0.2995110034942627\t0.01230015754699707\t0.37767786979675294\t0.017562103271484376\n", "3620\t0.2940248489379883\t0.011471033096313477\t0.3592061519622803\t0.016441154479980468\n", "3640\t0.30773353576660156\t0.011889457702636719\t0.3675652027130127\t0.016525077819824218\n", "3660\t0.303191089630127\t0.011492395401000976\t0.35885934829711913\t0.016588687896728516\n", "3680\t0.31014423370361327\t0.011799192428588868\t0.3751833438873291\t0.016850090026855467\n", "3700\t0.3246175289154053\t0.012086963653564453\t0.3912054538726807\t0.017044544219970703\n", "3720\t0.3119788646697998\t0.012071800231933594\t0.3782188415527344\t0.01714911460876465\n", "3740\t0.33250927925109863\t0.012139511108398438\t0.38680644035339357\t0.01774134635925293\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "3760\t0.3410377502441406\t0.012844228744506836\t0.4141252517700195\t0.017530298233032225\n", "3780\t0.35329556465148926\t0.012686204910278321\t0.41347322463989256\t0.01857271194458008\n", "3800\t0.3371159553527832\t0.012207746505737305\t0.41079320907592776\t0.018537569046020507\n", "3820\t0.3492577075958252\t0.01374049186706543\t0.425189208984375\t0.018312549591064452\n", "3840\t0.32932209968566895\t0.012080097198486328\t0.3930262565612793\t0.017146825790405273\n", "3860\t0.33127169609069823\t0.012644529342651367\t0.40482387542724607\t0.018084049224853516\n", "3880\t0.3413355350494385\t0.012493753433227539\t0.39746460914611814\t0.017582178115844727\n", "3900\t0.35105881690979\t0.012964344024658203\t0.434174108505249\t0.01816868782043457\n", "3920\t0.3589481353759766\t0.013613224029541016\t0.4343299388885498\t0.019379615783691406\n", "3940\t0.3430464267730713\t0.012559986114501953\t0.40693464279174807\t0.017627525329589843\n", "3960\t0.33388452529907225\t0.012324953079223632\t0.41754961013793945\t0.0178863525390625\n", "3980\t0.344816255569458\t0.012361764907836914\t0.4080005168914795\t0.017356252670288085\n", "4000\t0.35590457916259766\t0.012849378585815429\t0.41875591278076174\t0.018032073974609375\n", "4020\t0.3701124668121338\t0.013518762588500977\t0.441785192489624\t0.01824612617492676\n", "4040\t0.3636182308197021\t0.01284165382385254\t0.4243715763092041\t0.017901086807250978\n", "4060\t0.37689881324768065\t0.013182592391967774\t0.4342548370361328\t0.018538665771484376\n", "4080\t0.373777437210083\t0.013289308547973633\t0.46311225891113283\t0.019174909591674803\n", "4100\t0.39508447647094724\t0.013996315002441407\t0.4643694877624512\t0.020486831665039062\n", "4120\t0.3939957618713379\t0.015594720840454102\t0.4856442928314209\t0.021067333221435548\n", "4140\t0.38928070068359377\t0.01408696174621582\t0.4680632591247559\t0.020745849609375\n", "4160\t0.39208164215087893\t0.013987064361572266\t0.4639301300048828\t0.02085261344909668\n", "4180\t0.4056952953338623\t0.014148139953613281\t0.459351110458374\t0.02016620635986328\n", "4200\t0.3898773670196533\t0.014467096328735352\t0.4808512210845947\t0.02052755355834961\n", "4220\t0.4139106750488281\t0.014210128784179687\t0.49442567825317385\t0.02114248275756836\n", "4240\t0.4048349857330322\t0.01445002555847168\t0.4983996868133545\t0.021753549575805664\n", "4260\t0.4082202434539795\t0.014292097091674805\t0.4840221881866455\t0.020351505279541014\n", "4280\t0.41217265129089353\t0.014170217514038085\t0.4933387279510498\t0.020699071884155273\n", "4300\t0.41379318237304685\t0.014425563812255859\t0.49178280830383303\t0.020960664749145506\n", "4320\t0.4288304328918457\t0.014576911926269531\t0.4981682777404785\t0.02072110176086426\n", "4340\t0.4179959774017334\t0.014542722702026367\t0.49906220436096194\t0.020566463470458984\n", "4360\t0.41653995513916015\t0.015319347381591797\t0.48919024467468264\t0.020372915267944335\n", "4380\t0.4372415065765381\t0.015248489379882813\t0.5160569190979004\t0.02155904769897461\n", "4400\t0.4285746097564697\t0.014731216430664062\t0.5039500236511231\t0.021107196807861328\n", "4420\t0.43015027046203613\t0.015092134475708008\t0.5099397659301758\t0.0216278076171875\n", "4440\t0.44428296089172364\t0.015434169769287109\t0.5409632205963135\t0.02150263786315918\n", "4460\t0.4542506694793701\t0.015328264236450196\t0.5548118114471435\t0.02182626724243164\n", "4480\t0.45499114990234374\t0.01557612419128418\t0.5282456398010253\t0.021680068969726563\n", "4500\t0.4379301071166992\t0.015140771865844727\t0.5137191772460937\t0.021085357666015624\n", "4520\t0.4482383728027344\t0.015121841430664062\t0.5213878154754639\t0.02128286361694336\n", "4540\t0.4635757923126221\t0.015540075302124024\t0.5338762283325196\t0.02165875434875488\n", "4560\t0.4555660724639893\t0.015805864334106447\t0.5539475440979004\t0.021950912475585938\n", "4580\t0.48431124687194826\t0.016304397583007814\t0.5716986179351806\t0.022350072860717773\n", "4600\t0.47770214080810547\t0.015885114669799805\t0.5551002025604248\t0.021758413314819335\n", "4620\t0.4702445507049561\t0.01646847724914551\t0.5745690345764161\t0.021903800964355468\n", "4640\t0.47701206207275393\t0.01591005325317383\t0.569492244720459\t0.02165355682373047\n", "4660\t0.5002481937408447\t0.01652555465698242\t0.5943949222564697\t0.023291301727294923\n", "4680\t0.4846367835998535\t0.017083024978637694\t0.5840149402618409\t0.022222614288330077\n", "4700\t0.5215669631958008\t0.017419862747192382\t0.6113615036010742\t0.023497390747070312\n", "4720\t0.5107772827148438\t0.016922712326049805\t0.5947904586791992\t0.02261638641357422\n", "4740\t0.5060559272766113\t0.016824769973754882\t0.6059582710266114\t0.022888898849487305\n", "4760\t0.5115780353546142\t0.017524051666259765\t0.6079019069671631\t0.022661828994750978\n", "4780\t0.5211441516876221\t0.017404556274414062\t0.6469944953918457\t0.02368307113647461\n", "4800\t0.5299992084503173\t0.017182207107543944\t0.6363856792449951\t0.022929668426513672\n", "4820\t0.5311522483825684\t0.018195915222167968\t0.6201045989990235\t0.0227569580078125\n", "4840\t0.54957275390625\t0.017729949951171876\t0.6452257633209229\t0.023299026489257812\n", "4860\t0.5626798152923584\t0.018274688720703126\t0.6571751594543457\t0.023984336853027345\n", "4880\t0.5606235980987548\t0.018110132217407225\t0.6552255630493165\t0.024201250076293944\n", "4900\t0.5574665069580078\t0.018393325805664062\t0.6506341457366943\t0.023470973968505858\n", "4920\t0.5455842018127441\t0.018111371994018556\t0.655327558517456\t0.02376589775085449\n", "4940\t0.5518348693847657\t0.019008588790893555\t0.6652564525604248\t0.02405695915222168\n", "4960\t0.5846338748931885\t0.019524431228637694\t0.6912854194641114\t0.024245691299438477\n", "4980\t0.6017853736877441\t0.019951486587524415\t0.700214958190918\t0.0254000186920166\n", "5000\t0.5657501697540284\t0.01849527359008789\t0.6693590641021728\t0.023906993865966796\n", "5020\t0.5724595546722412\t0.018665313720703125\t0.6768007755279541\t0.02431650161743164\n", "5040\t0.5651773929595947\t0.018704605102539063\t0.6676862239837646\t0.024250268936157227\n", "5060\t0.6236097812652588\t0.01983332633972168\t0.7121326446533203\t0.025533056259155272\n", "5080\t0.6181499004364014\t0.020158100128173827\t0.7219113349914551\t0.024436807632446288\n", "5100\t0.6141637802124024\t0.020006513595581053\t0.7030462741851806\t0.025571870803833007\n", "5120\t0.6106322288513184\t0.019942665100097658\t0.7035201549530029\t0.02519388198852539\n", "5140\t0.6026552677154541\t0.01942605972290039\t0.7221785068511963\t0.02491288185119629\n", "5160\t0.6356612205505371\t0.021838903427124023\t0.7405391693115234\t0.025606632232666016\n", "5180\t0.6245331764221191\t0.019786882400512695\t0.7302518844604492\t0.025151872634887697\n", "5200\t0.6339151382446289\t0.020099735260009764\t0.7472311496734619\t0.026611709594726564\n", "5220\t0.628947639465332\t0.02016310691833496\t0.7464020252227783\t0.025520992279052735\n", "5240\t0.6441171169281006\t0.020340824127197267\t0.7400469779968262\t0.027546453475952148\n", "5260\t0.6261907100677491\t0.020478296279907226\t0.738034725189209\t0.02532038688659668\n", "5280\t0.6418932437896728\t0.02189350128173828\t0.768922996520996\t0.02600889205932617\n", "5300\t0.6571165084838867\t0.02077517509460449\t0.746267032623291\t0.025857305526733397\n", "5320\t0.681154441833496\t0.022791004180908202\t0.8397554397583008\t0.028537797927856445\n", "5340\t0.6817535877227783\t0.02239198684692383\t0.839404296875\t0.028327322006225585\n", "5360\t0.6486380100250244\t0.02043614387512207\t0.7625782012939453\t0.027391529083251952\n", "5380\t0.6681769847869873\t0.021031904220581054\t0.7915185928344727\t0.026456737518310548\n", "5400\t0.6709054946899414\t0.021521472930908205\t0.7871918201446533\t0.026729679107666014\n", "5420\t0.6758074283599853\t0.021136379241943358\t0.8047224044799804\t0.02742924690246582\n", "5440\t0.673988151550293\t0.02140650749206543\t0.8187006950378418\t0.026885557174682616\n", "5460\t0.7024207592010498\t0.02194247245788574\t0.8377645969390869\t0.028897571563720702\n", "5480\t0.7129066944122314\t0.02253274917602539\t0.8457952499389648\t0.02731623649597168\n", "5500\t0.6983580112457275\t0.022497844696044923\t0.8311114311218262\t0.02665252685546875\n", "5520\t0.7295599937438965\t0.023630094528198243\t0.8885221958160401\t0.027652645111083986\n", "5540\t0.6901599407196045\t0.022637271881103517\t0.8196866035461425\t0.026620960235595702\n", "5560\t0.7161325454711914\t0.022251224517822264\t0.8620994567871094\t0.027200937271118164\n", "5580\t0.7225696563720703\t0.022598648071289064\t0.900233793258667\t0.027713489532470704\n", "5600\t0.7689027786254883\t0.023179006576538087\t0.8818799495697022\t0.02820444107055664\n", "5620\t0.7803654670715332\t0.023960590362548828\t0.926357364654541\t0.02859325408935547\n", "5640\t0.7540367603302002\t0.022756528854370118\t0.8912493705749511\t0.0285186767578125\n", "5660\t0.7814239501953125\t0.02377028465270996\t0.8816603183746338\t0.02757568359375\n", "5680\t0.7582228183746338\t0.02460799217224121\t0.9181531429290771\t0.027868270874023438\n", "5700\t0.7943456649780274\t0.02616128921508789\t0.9393884658813476\t0.030058670043945312\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "5720\t0.7935919761657715\t0.023694181442260744\t0.9034484386444092\t0.028467130661010743\n", "5740\t0.7837872505187988\t0.024338150024414064\t0.923420763015747\t0.028338098526000978\n", "5760\t0.7927790641784668\t0.024699926376342773\t0.9846366882324219\t0.02935614585876465\n", "5780\t0.827521800994873\t0.024803686141967773\t0.9607218265533447\t0.030216503143310546\n", "5800\t0.8185110569000245\t0.025830888748168947\t0.9852794647216797\t0.029702281951904295\n", "5820\t0.7972644329071045\t0.026070070266723634\t0.9455700874328613\t0.029437255859375\n", "5840\t0.807908582687378\t0.02435297966003418\t0.9204263687133789\t0.028950023651123046\n", "5860\t0.7853564262390137\t0.024635934829711915\t0.9306421756744385\t0.028980350494384764\n", "5880\t0.833219051361084\t0.0258638858795166\t0.9698606967926026\t0.029148006439208986\n", "5900\t0.8447036743164062\t0.024997234344482422\t0.9820626735687256\t0.03044285774230957\n", "5920\t0.8325673103332519\t0.024353551864624023\t0.9627044200897217\t0.032026481628417966\n", "5940\t0.8265833854675293\t0.02811717987060547\t0.9835022449493408\t0.03162517547607422\n", "5960\t0.8425049304962158\t0.025948715209960938\t1.0230507850646973\t0.030226898193359376\n", "5980\t0.8537092685699463\t0.02644357681274414\t1.0169825077056884\t0.029478836059570312\n", "6000\t0.8376795291900635\t0.026439714431762695\t1.0353201389312745\t0.03019742965698242\n" ] } ], "source": [ "import time\n", "import random\n", "\n", "init = 80\n", "step = 20\n", "nmax = 6000\n", "repetitions = 5\n", "\n", "perf_insert_v1 = {}\n", "perf_insert_v2 = {}\n", "perf_select = {}\n", "perf_merge = {}\n", "random.seed()\n", "\n", "for n in range(0, nmax+1, step):\n", " runtime_insert_v1 = 0.0\n", " runtime_insert_v2 = 0.0\n", " runtime_select = 0.0\n", " runtime_merge = 0.0\n", " for i in range(repetitions):\n", " test_list_n_1 = [random.randrange(n*n) for j in range(n)]\n", " test_list_n_2 = [test_list_n_1[j] for j in range(n)]\n", " test_list_n_3 = [test_list_n_1[j] for j in range(n)]\n", " test_list_n_4 = [test_list_n_1[j] for j in range(n)]\n", " \n", " start = time.time()\n", " insertion_sort_v1(test_list_n_1)\n", " runtime_insert_v1 += time.time() - start\n", " \n", " start = time.time()\n", " insertion_sort_v2(test_list_n_2)\n", " runtime_insert_v2 += time.time() - start\n", " \n", " start = time.time()\n", " selection_sort(test_list_n_3)\n", " runtime_select += time.time() - start\n", " \n", " start = time.time()\n", " mergesort(test_list_n_4)\n", " runtime_merge += time.time() - start\n", " \n", " perf_insert_v1[n] = runtime_insert_v1 / repetitions\n", " perf_insert_v2[n] = runtime_insert_v2 / repetitions\n", " perf_select[n] = runtime_select / repetitions\n", " perf_merge[n] = runtime_merge / repetitions\n", " \n", " print(n, perf_insert_v1[n], perf_insert_v2[n], perf_select[n], perf_merge[n], sep='\\t')" ] }, { "cell_type": "code", "execution_count": 54, "id": "e477dc28", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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737ES7YkjtWTCbWUBRURERERkSakiKOdMZESTLQc2MOeUGVBRURERESkCSkIbWeql+LCHpbjWqqMKyIiIiIiTUdBaDsTL01UxrU8mTi8WXUHqD2LiIiIiIg0IQWh7UxyP2jmHtqzaDmuiIiIiIg0IUUc7URkyyIKZ/8VuzwXUHsWERERERFpGQpC24mS2ROpWP0RDlcasOcg1LL0kRARERERkaajtFcjsixrvGVZTxcVFbX0VOrIGnsraYedmfx5T8txVR1XRERERESakoLQRmSMmWKMuSknJ6elp1KHp9dIco7/CXZlAQDOrF51xliWhWVZzT01ERERERFpRxSEtiPx0u1gbGAPy3GVBRURERERkSamILQdiRcnKuNiOXBmdK07QO1ZRERERESkiSkIbUdi1e1ZMrrV34pFRYlERERERKSJKQhtR5I9QvdUGVeZUBERERERaWIKQtuRZBC6x8q4CkJFRERERKRpKQhtR2LF+8iEajmuiIiIiIg0MQWh7ci+luPi0MdBRERERESalqKOdiJeXoCJlALgzKwvCLXqL1YkIiIiIiLSiBSEthOxvDXJ751ZdfeEqiiRiIiIiIg0BwWh7UR1EGq5M7A8WXUHWPooiIiIiIhI01Pk0U5UB6HOrJ5YltXCsxERERERkfZKQWgjsixrvGVZTxcVFbX0VOrYFYTuoT2LiIiIiIhIM1AQ2oiMMVOMMTfl5OS09FTqSAah9RYlEhERERERaR4KQtuJmstxRUREREREWoqC0HbAxKPECtYD4MzUclwREREREWk5CkLbAROtIPOo7+PpeSSunD4tPR0REREREWnHXC09AWl6Dl82na/4N5Gls7GjFS09HRERERERaceUCRUREREREZFmoyBUREREREREmo2CUBEREREREWk2CkJFRERERESk2SgIFRERERERkWajIFRERERERESajYJQERERERERaTYKQkVERERERKTZKAgVERERERGRZqMgVERERERERJqNglARERERERFpNgpCG5FlWeMty3q6qKiopaciIiIiIiJyUFIQ2oiMMVOMMTfl5OS09FREREREREQOSgpCRUREREREpNkoCBUREREREZFmoyBUREREREREmo2CUBEREREREWk2CkJFRERERESk2SgIFRERERERkWajIFRERERERESajWWMaek5tDmWZe0E1rfwNLoAuS08B2k5uv/tl+59+6b7377p/rdfuvft28F6//sZY7rWd0JBaBtlWdbXxpgxLT0PaRm6/+2X7n37pvvfvun+t1+69+1ba7z/Wo4rIiIiIiIizUZBqIiIiIiIiDQbBaFt19MtPQFpUbr/7Zfuffum+9++6f63X7r37Vuru//aEyoiIiIiIiLNRplQERERERERaTYKQkVERERERKTZuFp6AtI4An7LAfwYuBnoD+wEXgHuDYZMWQtOTfYh4LfuBo4EAsAAYH0wZPrvZfxg4M/AyYAHmA/cFwyZT+oZm9LnIpXnlgMX8FuDgKuBs4DDAB+wGngVeGT3e6R733ZU/fe+l8T/9nsBbmAD8D7wUDBkttYzXve+DQv4rXRgKYl79ngwZG7f7bw+A21IwG/taT9cWTBkMncbq3vfxgT8VifgV8CFQB+gBFhC4j7NqjGuzd57ZULbjr8DDwPLgB+R+CX2DmBK1YdSDl5/BE4jEXwU7G1gwG8dBswFjgP+AvwMyASmBfzWGfVcst+fiwY8txy464E7Sdz735H4b74S+D0wN+C30qoH6t63OX2AnsCbwN3AT4CPgJuAYMBvdaseqHvfbvyORMP5OvQZaLNmAdfs9nVDzQG6921PwG/1A4LAtcBrwK0kfhdcB/SuMa5N33sVJmoDAn7rcGAx8GYwZC6pcfxHwKPAVcGQmdRS85O9C/itQ4Mhs6bq+yVA5p4yoQG/9QpwCRAIhszCqmOZJP56XgkMCYYS/6NO9XORynNL4wj4rTHAt8GQKdrt+O+Be4AfBUPmsapjuvftQMBvXUbiL9e/CIbMX6qO6d63cQG/dSTwFfBz4G/slgnVZ6DtqcqEPh8Mme/vY5zufRsT8FuzSGQqj9591ctu49r0vVeGrG2YAFjAI7sd/xdQTmK5nxykqgPQfQn4rQzgAuCz6n8wqq4vBf4NDAKOqnHJfn8uGvDc0giCIfP17gFolZerHoeD7n07s77qsSPo3rcHAb/lJHF/pgJv1HNen4E2LOC3PFW//Nd3Tve+jQn4rZOAscBfgiGzNeC33FVL8Xcf1+bvvYLQtuEowCbxV9SkYMhUAgvRPyJtxUjAC3xez7kvqh5r3utUPhepPrc0rT5Vj9urHnXv26iA3/IF/FaXgN/qE/BbZwFPVZ16v+pR977tuxMYAty+h/P6DLRdl5IIEEoCfmtHwG/9M+C3cmqc171ve86tetwQ8FtTgAqgLOC3VgX8Vs2kUZu/9wpC24ZeQG4wZML1nNsMdAn4LU8zz0kaX6+qx831nKs+1rvGsVQ+F6k+tzSRqqzIvUAMqF46o3vfdv2ARPGIjcA0oANwdY3CFLr3bVjAbw0Afgv8Lhgy6/YwTJ+Btukr4H4Sgei1wCck/hAxq0ZmVPe+7Rlc9fgvoBOJe38DEAFeCPit66rOt/l7r+q4bUM6UN+HDhLruqvHRJpnOtJEqpdr1HevK3cbU/39/n4uUn1uaTqPAMcCvwqGzMqqY7r3bddbwAoSBSGOILFEqmuN87r3bdsTwFoSxUT2RJ+BNigYMsfsdui/Ab+1CPgDiQqnf0D3vi3KqnosAU4NhkwEIOC33gTWAH8M+K3naQf3XpnQtqGcRFq9Pr4aY6R1q76H9d3r+u5zKp+LVJ9bmkDAbz1A4i/hTwdD5k81Tunet1HBkNkUDJnpwZB5Kxgy95H4q/ifA4nWTaB732ZVLb07C7glGDLRvQzVZ6D9eIhEkHBe1c+6921PRdXj5OoAFCAYMgXAO0AP/r+9+w+Wc7rjOP4+RiJBJKJBVLnMqZYg6kz9qJKoMfWz7iQYbRWZxq+oCCqtqQqjoyoqCNWmqUTTTkWVqGoTTF1TtIaDFkP1VH40Ur9q4koE+XH6xznbrO3uZm/uZu+9u5/XzDNP9nme8zzf3fPk3vvdc55zUmtp09e9ktDmsIzUzF7uZvo4qXleraB937K8LtdForCtuGtFV+6Lrp5b6sxZcwVwGTALOKdkt+q+RfgQ/wY8QxqyH1T3TSnXz/WkZ39fc9ZYZ40Fds2HDM7bhqB7oGXkLyOWsX6qHtV981ma16+V2VcYKXdbWqDulYQ2hydJdXlA8UZnzQBgP+CpHohJ6u85UteJg8vsOyivi+u6K/dFV88tdeSsmQJMAX4OjC8zLLrqvrUMJD0rBKr7ZjWQ1O36WOAfRUtH3n9qfj0e3QMtI9fRzqwflE5133wKAwftXGZfYdsbtEDdKwltDnOBSJrsvNiZpD7dv2x0QFJ/eejs+4DRzpqRhe15AIPxpD9YikdFq/m+2IhzS504ay4nDU4xBxjnQ1xXeozqvvk4a3assP1w0tQ8fwHVfRNbCZxUZim0gM/Pr3+re6D5OGu2q7DrKtJ4LfeB/v83qXmk50FPLZ6ax1kzHGgnzR0eWqHuTdQctE3BWTOd9CzZPaTuPXsCE4HHgC+U+8NWegdnzddY3wXrfKA/abJygMU+xDlFx1rSD4bVwDSgk/QDZh/gWB/igpJz13xfdPXc0n3OmvOAm4ElwHdJw6sXe92H+GA+VnXfRPIgFMNJI2IuJj2H44BTSM/ijC6aQFx13yKcNW2kgYpu8SF+o2i77oEm4qyZRmpxepj0839r0tQdhwNPkAasWZWPVd03GWfNWaTpuF4AbiP93Xcu6XfCcT7EB/JxTV33SkKbRJ7WYRJwFtAGvEX6VuTy/I2H9FLOmg5gVIXdj/gQR5ccvydwTS7TH3gauMKH+FCZc3fpvujKuaX7nDWzSQPRVPKR+lfdNw9nzcmkut+X1C0zkpLRB4GpPsQlJcer7ltApSQ079M90CScNSeQWr33BrYD1pJan+4Ers9zOxYfr7pvMs6aMcBkUtK3jjRn55U+xMdKjmvaulcSKiIiIiIiIg2jZ0JFRERERESkYZSEioiIiIiISMMoCRUREREREZGGURIqIiIiIiIiDaMkVERERERERBpGSaiIiIiIiIg0jJJQERERERERaRgloSIi0qs5azqcNdFZc0ZPx9JbOGuuyJ/J7DL7FuV9oxseWB04a9py/JrIXESkSW3e0wGIiIi0EmdNO7Af0OFD7OjRYDYgJ/5twDwf4rM9GoyIiDQNJaEiItLbLQH+DrzT04HUSTtwev53xyY4/z+B94H36nCuM4BRwCLg2TqcrxarSfUtIiJNSkmoiIj0aj7E03o6hr7Eh3hET8fQHT7EV4FP93QcIiKy6eiZUBEREREREWkYtYSKiEiv5qzpIHUJHedDnF20fTTwMLDYh9jmrDkEuBQ4CNgKeBn4KXCLDzGWnLMNWAjgQzRFZQ8sKjsT+JEPcV2ZmArn282HuKjM/o+cvyTeginOminF5QrHdoezZhGwK3B46TOnzpqRwMXAYcBw4EPgTdL7nQ/M8CG+l58FnVVUdJazpvj1Yh9iW43xbAacRuqCvC+wDbAceAN4ArjThzi/6Pg2Sj67vP0K4COfVwWP+BBHl4njeGA8qY6H5hieAG72IS6o5b2IiEh9KAkVEZE+LydNM0k9fDqBAaSEZzpggUlVyo4F7iD9TlwO9ANG5rJHOGtO8iGuqUOYHwKvA4NzfCuBFXU4b02cNccA80jvD+ADYB2wW16+SEpEXwJW5ViH5uM787aCN7tw6TnAV4pev0NKRD8G7JWX+WXKlVqRY6pkW6B/6UZnTT9SQv3Vos2dwDDgOOA4Z81UH+LkGmIQEZE6UHdcERHp64YBPwFuBYb7EIeQEpLpef9EZ82IKuV/BjwE7O5D3BYYAkwmJWjt+d/d5kN83Ie4IzA3b7rOh7hj8VKP61QxnZRQ/g74lA9xgA9xMCkpPozUavx+jnVujufxXPaCklg/W8sFnTWHkRLQdcCFwDa5fgYAO5EGPnq0lnP5EP/v8yr63I4G1uZD/1BS9FpSArooxzIov+9BwNmkhPQSZ82Xa4lDRES6Ty2hIiLS120JzPQhnl/Y4ENcTko+RwP7AGOBFyqUXwq0+xA/yGVXAlOdNVuRun9+y1lzY97eJzlrtgd2zy/H+xD/16LoQ+wE/pSXejsorx/wId5QdM0I/Bu4vbsXyO9tHjCQ1LX3B0X7PglMJLVwH+FDfKUohhXADGfNctIXA98BftXdeEREZMPUEioiIs3g+xW235vXe1cp+8NCAlrielLL4DbAkd2IrTd4l9QaCelZ0EbpzOvt87OhdZW72t4F7AI8A4wrOeQ00t8684oT0BJ3k7omj3DWNPKzERFpWWoJFRGRvu7tKgnGq3m9bZXyHeU2+hA7nTXPAAcD+5Na2/okH+IqZ80jwOHAAmfNdFK33Od8iGurl+6Wh0jPwu4PdDhrZgB/9CEuq9P5pwOHkgY5avchls6N+rm8PtFZc3SV8xSek/0EqYVWREQ2IbWEiohIX/dulX3v53W/Kse8WsO+YV2KqHcaD7wIbA9cRWo5XO6sud9Zc6qzpu5fTPsQA3AuaVCjQ0mDFL3qrFnorLnVWfOZjT23s2YC6ZnOD4GxPsQlZQ4rtGxuDexQZSn8PbTlxsYjIiK1U0uoiIhIZd2eMqW38CG+4qzZlzQi7NGkpHBP4Ji8XOisGZWflazndW9z1twPnEJqif080AacA5ztrLnMh3h1V87prBkF3JBfnudDrDS4USG5vMCHeFNXYxcRkU1DLaEiItLqdqqyr9CSVjolSaEL64AK5QZ3K6JNxIe4xoc4z4d4tg9xL9L7u4TUYrw/tc3DuTHXfd2HeKMPsZ3UqnwAcA8pyb8qJ8c1cdbsCvya1Lp9PyYwGQAAA0xJREFUsw9xZpXDCwMw7bVRgYuIyCahJFRERFrdqHIbnTWDSIkZwNMlu5fn9c4VzlltCpPCAEE93srqQ3zNh3gd61sVSz+LusfqQ4w+xCeBk0gjE29Gah3dIGfNlqTBpoYBD5Omfanmz3l9fB7ESEREegEloSIi0uoudtb0L7N9EqmlsxN4oGTfc3l9QmkhZ80WuWwlhRFjh3QlyO5w1vRz1lRLJFfl9RYl27sVa4XPFYA8INLqCtetZBYwElgInORDXLOB428nJdI7AZduINZqg1eJiEgdKQkVEZFWtwtwj7OmDVJrm7PmItZ3Tf1BmVFX78zrM50143LiibNmBPB7qnfxLcxXelQDpwQZATzvrJnkrNmjkJDm5HQscFE+bkGFWMc4azami/HVzpq7nDXtzpqhhY3Omh2cNTcBuwEReHBDJ3LWfBs4GVgBfMmH+J8NlfEhvsj6Vt4rnTW3OGsK86XirNnaWXOks2YOqYuviIg0gAYmEhGRVvd14A5gobNmOWkk1cLvx3uBa8uUmQmcDhwI3AbMcNa8R5pT9G3SfJXzKlzvHuAaYA9gqbPmDdI8lfgQ27r9birbC5iWlw+cNStJLZyFL6SfAr5XUmYO8E1Sd9m3cqyrgaU+xFq60G4OjM0LzppOUtfeQUXHXOZDfL6Gcx2V1/2Ah5yt2LD7uA9xTNHrycBA0ii9E4AJzpp3Sc/1DmZ9V+OOGmIQEZE6UEuoiIi0NB/ib0ijtt5PSkzWAH8FzgfGlOvy6UNcDRwJTAUWkbp8rgRmAy6Xr3S9t/L17iYNeDQM2DUvm8qLwInAj8lTs5AS5k7gUdJ7PcSH2FlcyIf4Eul9zgfeAXbMcVZ6FrbUNGAiKZl/mZTwbQH8C5gLHNbVkXFz+WrTrQwtPtiHuNaHOIGUSP8CWAz0JyWmS0hfCpwOtHcxDhER2UgmxtjTMYiIiDRU7nq7EMCH2OMDBImIiLQStYSKiIiIiIhIwygJFRERERERkYZREioiIiIiIiINoyRUREREREREGkYDE4mIiIiIiEjDqCVUREREREREGkZJqIiIiIiIiDSMklARERERERFpGCWhIiIiIiIi0jBKQkVERERERKRhlISKiIiIiIhIw/wXpvHaE+zm4bIAAAAASUVORK5CYII=\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_insert_v1 = list(perf_insert_v1.keys())[2:]\n", "vallist_insert_v1 = list(perf_insert_v1.values())[2:]\n", "\n", "keylist_insert_v2 = list(perf_insert_v2.keys())[2:]\n", "vallist_insert_v2 = list(perf_insert_v2.values())[2:]\n", "\n", "keylist_select = list(perf_select.keys())[2:]\n", "vallist_select = list(perf_select.values())[2:]\n", "\n", "keylist_merge = list(perf_merge.keys())[2:]\n", "vallist_merge = list(perf_merge.values())[2:]\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", "ax.set_yscale('log')\n", "\n", "sbn.regplot(x=keylist_insert_v1, y=vallist_insert_v1, color='#f03010', order=6, scatter_kws={'s':2}) # red for insertion sort v1\n", "sbn.regplot(x=keylist_insert_v2, y=vallist_insert_v2, color='#e07000', order=6, scatter_kws={'s':2}) # orange for insertion sort v2\n", "sbn.regplot(x=keylist_select, y=vallist_select, color='#005528', order=6, scatter_kws={'s':2}) # green for selection sort\n", "sbn.regplot(x=keylist_merge, y=vallist_merge, color='#002855', order=6, scatter_kws={'s':2}) # blue for mergesort" ] }, { "cell_type": "code", "execution_count": null, "id": "9fec7698", "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 }