{"id":11910,"date":"2023-01-20T06:59:22","date_gmt":"2023-01-20T06:59:22","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=11910"},"modified":"2023-02-02T09:53:44","modified_gmt":"2023-02-02T09:53:44","slug":"merge-sort-explanation-with-example","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/","title":{"rendered":"Merge Sort Explanation with Example"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367039-Merge%20Sort%20Explanation.jpg\" alt=\"\" \/><\/p>\n<p>In this article, we are going to discuss merge sort and how to merge k sorted lists.<\/p>\n<h2>Merge Sort<\/h2>\n<ul>\n<li>Merge sort is a divide-and-conquer algorithm. <\/li>\n<li>It is a recursive algorithm. <\/li>\n<li>In merge sort, we have to divide the container (container can be an array, list, etc.) into two halves then we will call merge sort recursively on the two halves. <\/li>\n<li>These two merge sort calls return sorted containers, and we then, merge these sorted containers in such a way that the whole container remains sorted.<\/li>\n<li>Have a look at the below image to see in a nutshell how merge sort works.<\/li>\n<\/ul>\n<p><strong>Merge sort example:-<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367161-Merge%20Sort%20Explanation1.png\" alt=\"\" \/><\/p>\n<p>Now, we have a brief understanding of the merge sort algorithm.<\/p>\n<h3>How to Merge K Sorted Linked Lists<\/h3>\n<p>But before learning how to merge k sorted linked lists, we have to first know how to merge two sorted linked lists.<\/p>\n<p><strong>Merging two sorted linked list Algorithm:<\/strong><br \/>\nWhen the two recursive call will return the two sorted list, then we will merge those sorted list into a single list using these below steps.<\/p>\n<ol>\n<li>Initialize two pointer variable named curr1 and curr2 with left sorted sub-list and right sorted sub-list.<\/li>\n<li>Initialize two pointer variable named si and ei with NULL, these two pointer variables are head and tail of the final sorted linked list.<\/li>\n<li>If the data of curr1 is less than the data of curr2, then, store curr1 in next of ei &amp; move curr1 to the next of curr1.<\/li>\n<li>Else, if the data of curr2 is less than curr1, then store curr2 in next of ei &amp; move curr2 to the next of curr2.<\/li>\n<li>Repeat steps 3 and 4 until either the curr1 or curr2 is not equal to null.<\/li>\n<li>Now add any remaining nodes of the first or the second linked list to the merged linked list.<\/li>\n<li>Return the head of the merged sorted linked list containing all the nodes of the two sorted sub-lists.<\/li>\n<\/ol>\n<p>We are given k linked lists each of length n. Each given linked list is sorted in non-decreasing order, Our task is to merge them into a single sorted (non-decreasing order) linked list and print the sorted linked list as output.<\/p>\n<p><strong>Examples:<\/strong><br \/>\n<strong>Input:<\/strong><\/p>\n<pre><code>k = 3, n =  3\nlist1 = 1-&gt;3-&gt;5-&gt;NULL\nlist2 = 2-&gt;4-&gt;8-&gt;NULL\nlist3 = 6-&gt;7-&gt;9-&gt;NULL<\/code><\/pre>\n<p><strong>Output:<\/strong><\/p>\n<pre><code>1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;6-&gt;7-&gt;8-&gt;9-&gt;NULL<\/code><\/pre>\n<p><strong>Input:<\/strong><\/p>\n<pre><code>k = 2, n = 4\nlist1 = 2-&gt;3-&gt;10-&gt;12-&gt;NULL\nlist2 = 1-&gt;4-&gt;8-&gt;9-&gt;NULL<\/code><\/pre>\n<p><strong>Output:<\/strong><\/p>\n<pre><code>1-&gt;2-&gt;3-&gt;4-&gt;8-&gt;9-&gt;10-&gt;12-&gt;NULL<\/code><\/pre>\n<h3>Brief about Min-Heap<\/h3>\n<p>Min-heap is a min priority queue. It is a complete binary tree having a root value smaller than both children\u2019s values. <\/p>\n<pre><code>           2\n         \/   \\\n        4     5\n       \/ \\  \n      11  6  \n\n    Min-Heap<\/code><\/pre>\n<p>We will use a min-heap to get the current minimum value node of linked lists.<\/p>\n<h3>Approach:<\/h3>\n<p>The main intuition behind this approach is to maintain the current smallest element from all given linked lists and add that element i.e Node to the final linked list. Let\u2019s understand the algorithm step-wise.<\/p>\n<p>Before understanding the algorithm let\u2019s go briefly through the min-heap data structure. Min-heap data structure is a type of data structure that has the smallest element among all elements in the heap on the top.<\/p>\n<h3>Algorithm:<\/h3>\n<p>Create a min-heap of type Node because it will store the nodes of the linked list. First of all, insert the first node of all the \u2018k\u2019 linked lists.<\/p>\n<p>Continue these following steps until the min-heap is not empty:-<\/p>\n<ul>\n<li>Remove the top element of the min-heap (that is the current minimum element in the min-heap).<\/li>\n<li>Add this node to the result list.<\/li>\n<li>Push the next node (if exists) of the node (that is popped out from min heap in step1) in the min-heap. <\/li>\n<\/ul>\n<p>Finally, the sorted linked list is ready. Return the head node of the merged list.<\/p>\n<p><strong>Code:<\/strong><\/p>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_11913 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_11913 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_11913 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_11913 .wpsm_nav-tabs > li.active > a, #tab_container_11913 .wpsm_nav-tabs > li.active > a:hover, #tab_container_11913 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_11913 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_11913 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_11913 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_11913 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_11913 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_11913 .wpsm_nav-tabs > li > a:hover , #tab_container_11913 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_11913 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_11913 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_11913 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_11913 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_11913 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_11913 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_11913 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_11913 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_11913 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_11913 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_11913 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_11913\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_11913\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_11913_1\" aria-controls=\"tabs_desc_11913_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_11913\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_11913_1\">\r\n\t\t\t\t\t\t\t\t<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">#include &lt;bits\/stdc++.h&gt;\r\nusing namespace std;\r\n \r\nstruct Node{\r\n  int data;\r\n  struct Node* next;\r\n};\r\n \r\n\/\/function to create a new node\r\nstruct Node* newNodeInsert(int data){\r\n  \/\/ Allocate Node\r\n  struct Node* new_node = new Node();\r\n \r\n  \/\/ assigning data of the node\r\n  new_node-&gt;data = data;\r\n  new_node-&gt;next = NULL;\r\n \r\n  return new_node;\r\n}\r\n \r\n\/\/ 'compare' function used to build up the heap of type min-heap\r\nstruct compare{\r\n  bool operator()(struct Node* a, struct Node* b){\r\n    return a-&gt;data &gt; b-&gt;data;\r\n  }\r\n};\r\n \r\n\/\/ Function to merge k sorted linked lists\r\nstruct Node* mergeKSortedLists(struct Node* lists[], int k){\r\n  priority_queue&lt;Node*, vector&lt;Node*&gt;, compare&gt; pq;\r\n  \/\/min heap of type pq\r\n \r\n  \/\/ Push the head nodes of all the k lists in 'pq' i.e min-heap\r\n  for (int i = 0; i &lt; k; i++){\r\n    if (lists[i] != NULL){\r\n      pq.push(lists[i]);\r\n    }\r\n  }\r\n  \r\n  struct Node *ansHead = NULL;\r\n  struct Node *ansTail = NULL;\r\n  \r\n  \/\/ continue until 'pq' is not empty\r\n  while (!pq.empty()){\r\n    \/\/ Get the top element of min heap\r\n    \/\/ that's the smallest value node \r\n    struct Node* curr = pq.top();\r\n    pq.pop();\r\n \r\n    \/\/ Add that node to ans list\r\n    if(ansHead == NULL){\r\n    ansHead = curr;\r\n    ansTail = ansHead;\r\n    }else{\r\n    ansTail-&gt;next = curr;\r\n    ansTail = ansTail-&gt;next;\r\n    }\r\n    \/\/ push the next node of the curr-&gt;next in the min heap (if exists)\r\n    if (curr-&gt;next != NULL)\r\n    pq.push(curr-&gt;next);\r\n  }\r\n \r\n  \/\/ Address of head node of the required\r\n  \/\/ merged list\r\n  return ansHead-&gt;next;\r\n}\r\n \r\n\/\/ function to print the singly\r\n\/\/ linked list\r\nvoid printList(struct Node* head){\r\n  while (head != NULL){\r\n    cout &lt;&lt; head-&gt;data &lt;&lt; \" \";\r\n    head = head-&gt;next;\r\n  }\r\n  return;\r\n}\r\n \r\n \r\nint main(){\r\n  \/\/ k is the number of the linked lists and n is the length of the linked list\r\n  int k = 3, n = 4;\r\n \r\n  \/\/ lists is array of Node pointer pointing towards head of the linked lists\r\n  Node* lists[k];\r\n \r\n  \/\/ Creating k = 3 sorted lists\r\n  lists[0] = newNodeInsert(1);\r\n  lists[0]-&gt;next = newNodeInsert(3);\r\n  lists[0]-&gt;next-&gt;next = newNodeInsert(5);\r\n \r\n  lists[1] = newNodeInsert(2);\r\n  lists[1]-&gt;next = newNodeInsert(4);\r\n  lists[1]-&gt;next-&gt;next = newNodeInsert(8);\r\n \r\n  lists[2] = newNodeInsert(6);\r\n  lists[2]-&gt;next = newNodeInsert(7);\r\n  lists[2]-&gt;next-&gt;next = newNodeInsert(9);\r\n \r\n  \/\/ Merge the k sorted lists\r\n  struct Node* ans = mergeKSortedLists(lists, k);\r\n \r\n \r\n  \/\/ Print the final merged list\r\n  printList(ans);\r\n}\r\n \r\n \r\n<\/pre>\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_11913 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_11913 a\"),jQuery(\"#tab-content_11913\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t\n<p><strong>Input:<\/strong><\/p>\n<pre><code>k = 3, n =  3\nlist1 = 1-&gt;3-&gt;5-&gt;NULL\nlist2 = 2-&gt;4-&gt;8-&gt;NULL\nlist3 = 6-&gt;7-&gt;9-&gt;NULL<\/code><\/pre>\n<p><strong>Output:<\/strong><\/p>\n<pre><code>1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;6-&gt;7-&gt;8-&gt;9-&gt;NULL<\/code><\/pre>\n<h3>Dry Run:<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367178-Merge%20Sort%20Explanation2.png\" alt=\"\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367185-Merge%20Sort%20Explanation3.png\" alt=\"\" \/><\/p>\n<p>And the above processes will continue like that until the min-heap is empty.<\/p>\n<p><strong>Time Complexity:<\/strong> O(n <em> k <\/em> log k)<br \/>\nInsertion and deletion in a min-heap require log k time. This process will continue for n* k nodes.<\/p>\n<p><strong>Auxiliary Space:<\/strong> O(k).<br \/>\nThe min-heap will have the atmost \u2018k\u2019 number of elements at any point in time.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we are going to discuss merge sort and how to merge k sorted lists. Merge Sort Merge sort is a divide-and-conquer algorithm. It is a recursive algorithm. In merge sort, we have to divide the container (container can be an array, list, etc.) into two halves then we will call merge sort [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[170],"tags":[],"class_list":["post-11910","post","type-post","status-publish","format-standard","hentry","category-sorting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Merge Sort Explanation with Example<\/title>\n<meta name=\"description\" content=\"Here we will learn about merge sort and how to merge k sorted lists. We will also learn its different approaches with algorithm and code.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Merge Sort Explanation with Example\" \/>\n<meta property=\"og:description\" content=\"Here we will learn about merge sort and how to merge k sorted lists. We will also learn its different approaches with algorithm and code.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-20T06:59:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-02T09:53:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367039-Merge%20Sort%20Explanation.jpg\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Merge Sort Explanation with Example\",\"datePublished\":\"2023-01-20T06:59:22+00:00\",\"dateModified\":\"2023-02-02T09:53:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/\"},\"wordCount\":648,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367039-Merge%20Sort%20Explanation.jpg\",\"articleSection\":[\"Sorting\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/\",\"name\":\"Merge Sort Explanation with Example\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367039-Merge%20Sort%20Explanation.jpg\",\"datePublished\":\"2023-01-20T06:59:22+00:00\",\"dateModified\":\"2023-02-02T09:53:44+00:00\",\"description\":\"Here we will learn about merge sort and how to merge k sorted lists. We will also learn its different approaches with algorithm and code.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367039-Merge%20Sort%20Explanation.jpg\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367039-Merge%20Sort%20Explanation.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sorting\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/sorting\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Merge Sort Explanation with Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Merge Sort Explanation with Example","description":"Here we will learn about merge sort and how to merge k sorted lists. We will also learn its different approaches with algorithm and code.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/","og_locale":"en_US","og_type":"article","og_title":"Merge Sort Explanation with Example","og_description":"Here we will learn about merge sort and how to merge k sorted lists. We will also learn its different approaches with algorithm and code.","og_url":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2023-01-20T06:59:22+00:00","article_modified_time":"2023-02-02T09:53:44+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367039-Merge%20Sort%20Explanation.jpg","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Merge Sort Explanation with Example","datePublished":"2023-01-20T06:59:22+00:00","dateModified":"2023-02-02T09:53:44+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/"},"wordCount":648,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367039-Merge%20Sort%20Explanation.jpg","articleSection":["Sorting"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/","url":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/","name":"Merge Sort Explanation with Example","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367039-Merge%20Sort%20Explanation.jpg","datePublished":"2023-01-20T06:59:22+00:00","dateModified":"2023-02-02T09:53:44+00:00","description":"Here we will learn about merge sort and how to merge k sorted lists. We will also learn its different approaches with algorithm and code.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367039-Merge%20Sort%20Explanation.jpg","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1674197367039-Merge%20Sort%20Explanation.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/merge-sort-explanation-with-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Sorting","item":"https:\/\/prepbytes.com\/blog\/category\/sorting\/"},{"@type":"ListItem","position":3,"name":"Merge Sort Explanation with Example"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/11910","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=11910"}],"version-history":[{"count":2,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/11910\/revisions"}],"predecessor-version":[{"id":11923,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/11910\/revisions\/11923"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=11910"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=11910"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=11910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}