{"id":6293,"date":"2019-12-21T09:41:05","date_gmt":"2019-12-21T09:41:05","guid":{"rendered":"https:\/\/holypython.com\/?p=6293"},"modified":"2021-03-28T13:17:07","modified_gmt":"2021-03-28T13:17:07","slug":"merge-sort-algorithm-python-code","status":"publish","type":"post","link":"https:\/\/holypython.com\/merge-sort-algorithm-python-code\/","title":{"rendered":"Merge Sort Algorithm (Python Code)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"6293\" class=\"elementor elementor-6293\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4aa78c95 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4aa78c95\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5acbd18b\" data-id=\"5acbd18b\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-6619ccd2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6619ccd2\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-798ea2ce\" data-id=\"798ea2ce\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-63588234 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"63588234\" data-element_type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<i aria-hidden=\"true\" class=\"fas fa-book-reader\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-11c50a7b\" data-id=\"11c50a7b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-71980e5e elementor-widget elementor-widget-heading\" data-id=\"71980e5e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Algorithm: Merge Sort<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-7f27e389 elementor-align-left elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"7f27e389\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-code\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\"><b>FUNCTION<\/b>: Sorting<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-plane-departure\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\"><b>PERFORMANCE<\/b>:      O(n log n)<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-folder\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\"><b>DESIGN CATEGORY<\/b>: Divide and Conquer<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"far fa-clock\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\"><b>FOUNDED IN<\/b>: 1945<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-user-circle\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\"><b>FOUNDED BY<\/b>: John von Neumann<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-03e1ca6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"03e1ca6\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-78a86a6\" data-id=\"78a86a6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e565596 elementor-widget elementor-widget-text-editor\" data-id=\"e565596\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Merge sort works by splitting collections to sub-collections until there is one item in the list and then sorts the items as its merging them.<\/p><p>You can see an illustrated scheme showing how merge sort algorithm proceeds step by step below.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-3e114f8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3e114f8\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-f6f81ab\" data-id=\"f6f81ab\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a73060d elementor-widget elementor-widget-heading\" data-id=\"a73060d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">STEP BY STEP<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-1d7e482 elementor-widget elementor-widget-image\" data-id=\"1d7e482\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"723\" src=\"https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/mergeSort-schema-1-1024x723.jpg\" class=\"attachment-large size-large wp-image-6352\" alt=\"\" srcset=\"https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/mergeSort-schema-1-1024x723.jpg 1024w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/mergeSort-schema-1-300x212.jpg 300w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/mergeSort-schema-1-768x542.jpg 768w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/mergeSort-schema-1-1536x1084.jpg 1536w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/mergeSort-schema-1-2048x1446.jpg 2048w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/mergeSort-schema-1-600x424.jpg 600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Sort Merge step-by-step illustration<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-03e9dde elementor-widget elementor-widget-text-editor\" data-id=\"03e9dde\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can use the Python code below to create a merge sort algorithm in your local environment. <code>yield<\/code> statement is used instead of <code>return<\/code> to create a generator so that the output is an iterable. (For visualization purposes.)<\/p><p>Merge sort is generally an efficient algorithm. It&#8217;s also a <b>&#8220;divide and conquer&#8221;<\/b> algorithm by design since it recursively divides the problem to sublists until these sublists are simple enough to be solved and then merges the solutions to the sublists to end up with one eventual solution to the ultimate problem. (Final sorted list)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-552f62a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"552f62a\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-c124d86\" data-id=\"c124d86\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9898141 elementor-widget elementor-widget-heading\" data-id=\"9898141\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">MERGE SORT ALGORITHM CODE IN PYTHON<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-f796da9 elementor-widget elementor-widget-html\" data-id=\"f796da9\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"PYTHON\"><code>def MergeSort(lst):\r\n    if len(lst) &gt; 1:\r\n        middle = len(lst)\/\/2\r\n        l = lst[:middle]\r\n        r = lst[middle:]\r\n        \r\n        MergeSort(l)\r\n        MergeSort(r)\r\n        \r\n        i,j,k = 0,0,0\r\n        \r\n        while i &lt; len(l) and j &lt; len(r):\r\n            if l[i] &lt; r[j]:\r\n                lst[k]=l[i]\r\n                i+=1\r\n            else:\r\n                lst[k]=r[j]\r\n                j+=1\r\n            k+=1\r\n            \r\n        while i &lt; len(l):\r\n            lst[k]=l[i]\r\n            i+=1\r\n            k+=1\r\n                 \r\n        while j &lt; len(r):\r\n            lst[k]=r[j]\r\n            j+=1\r\n            k+=1\r\n            \r\n    return lst\r\n                \r\na= MergeSort([2,46,66,3])\r\nprint(a)\r\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fcecee9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fcecee9\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c5e0f0c\" data-id=\"c5e0f0c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-3977355 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3977355\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-096d8c5\" data-id=\"096d8c5\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7ab2689 elementor-widget elementor-widget-heading\" data-id=\"7ab2689\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">MERGE SORT ALGORITHM VISUALIZATION<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-82de80b elementor-widget elementor-widget-text-editor\" data-id=\"82de80b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Matplotlib has a great class called animation which can be used to generate animations and live charts as below:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a38efac elementor-widget elementor-widget-image\" data-id=\"a38efac\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"576\" height=\"432\" src=\"https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/mergesort.gif\" class=\"attachment-full size-full wp-image-6549\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">GIF File visualizing Merge Sort Algorithm in action<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8342bb2 elementor-widget elementor-widget-text-editor\" data-id=\"8342bb2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>There is a divine pleasure in watching an algorithm at work. By using Python&#8217;s animation library and FuncAnimation method you can visualize your sorting algorithm as it sorts a random data you throw at it.<\/p><p>This can be achieved by taking advantage of generators concept in your algorithm and using that iterable generator to create a graph with FuncAnimation. It might seem more complicated that it actually is so feel free to work on the code below.<\/p><p>This code was originally published by Najam Syed <a href=\"https:\/\/nrsyed.com\/2018\/09\/27\/visualizing-sorting-algorithms-and-time-complexity-with-matplotlib\/\">here<\/a>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2071a6e elementor-widget elementor-widget-html\" data-id=\"2071a6e\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"PYTHON\"><code>if __name__ == \"__main__\":\n\n    N = 17\n    A = [x + 1 for x in range(N)]\n    random.seed(time.time())\n    random.shuffle(A)\n\n    figure, ax = plt.subplots(figsize=(12,9))\n    bar_list = ax.bar(range(len(A)), A, width=0.3, align=\"edge\", color=\"darkgreen\")\n    \n    index=count()\n    def update_figure(A, bars, iteration):\n        for bar, value in zip(bars, A):\n            bar.set_height(value)\n        \n    \n    anim = animation.FuncAnimation(figure, func=update_figure,\n        fargs=(bar_list, next(index)), frames=MergeSort(A), interval=100,\n        repeat=False,save_count=150)\n    plt.show()<\/code><\/pre>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51b1627 elementor-widget elementor-widget-text-editor\" data-id=\"51b1627\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>If you&#8217;re interested in saving your animation as a .gif or video file (such as: .mp4, .mov, .avi), you can check out the Matplotlib Animation saving tutorial <a href=\"https:\/\/holypython.com\/how-to-save-matplotlib-animations-the-ultimate-guide\/\">here<\/a>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-db71d45 elementor-widget elementor-widget-image\" data-id=\"db71d45\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"574\" src=\"https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/3Figure_1-1024x574.png\" class=\"attachment-large size-large wp-image-6343\" alt=\"\" srcset=\"https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/3Figure_1-1024x574.png 1024w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/3Figure_1-300x168.png 300w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/3Figure_1-768x431.png 768w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/3Figure_1-1536x861.png 1536w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/3Figure_1-2048x1148.png 2048w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/3Figure_1-600x336.png 600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Collection sorted with Merge Sort Algorithm<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9ed5d28 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9ed5d28\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2d50908\" data-id=\"2d50908\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-6dee12b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6dee12b\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-59cb456\" data-id=\"59cb456\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7484568 elementor-widget elementor-widget-heading\" data-id=\"7484568\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">HISTORY<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-662a41e elementor-widget elementor-widget-text-editor\" data-id=\"662a41e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Merge Sort algorithm was invented by John von Neumann in 1945. Neumann was a significant American-Hungarian scientist who also worked with Alan Turing on Artificial Intelligence on scientific and philosophical levels.<\/p><p>He also founded the &#8220;Meteorological Program&#8221; in Princeton in 1946. Neumann proposed a global warming theory\u00a0\u00a0in 1955, suggesting human activities (burning of coal and oil) on earth might be the cause of global warming which may have changed the atmosphere&#8217;s composition sufficiently to account for a general warming of the world by about one degree Fahrenheit.<\/p><p>Another algorithm, called Timsort, is based on merge sort and insertion sort and is used under Python&#8217;s hood for its own <code>sorted()<\/code> function and <code>.sort()<\/code> methods.<\/p><p>Found by software developer Tim Peters in 2002, Timsort is a hybrid algorithm derived from merge-sort and insertion-sort algorithms.<\/p><p>Tim Peters also wrote <b>The Zen of Python<\/b> which is embedded in Python as an Easter egg and can be found by running: <b>import this.<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-33d4a31 elementor-widget elementor-widget-image\" data-id=\"33d4a31\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"567\" src=\"https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/zen-of-python-1024x567.jpg\" class=\"attachment-large size-large wp-image-6362\" alt=\"\" srcset=\"https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/zen-of-python-1024x567.jpg 1024w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/zen-of-python-300x166.jpg 300w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/zen-of-python-768x425.jpg 768w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/zen-of-python-1536x851.jpg 1536w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/zen-of-python-600x332.jpg 600w, https:\/\/holypython.com\/wp-content\/uploads\/2019\/12\/zen-of-python.jpg 1737w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Algorithm: Merge Sort FUNCTION: Sorting PERFORMANCE: O(n log n) DESIGN CATEGORY: Divide and Conquer FOUNDED IN: 1945 FOUNDED BY: John von Neumann Merge sort works by splitting collections to sub-collections until there is one item in the list and then sorts the items as its merging them. You can see an illustrated scheme showing how [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6343,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[45,46],"tags":[],"class_list":["post-6293","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algorithms","category-sorting"],"acf":[],"_links":{"self":[{"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/posts\/6293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/comments?post=6293"}],"version-history":[{"count":0,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/posts\/6293\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/media\/6343"}],"wp:attachment":[{"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/media?parent=6293"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/categories?post=6293"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/tags?post=6293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}