{"id":9074,"date":"2022-07-12T09:35:11","date_gmt":"2022-07-12T09:35:11","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=9074"},"modified":"2023-11-27T12:38:22","modified_gmt":"2023-11-27T12:38:22","slug":"sorting-queue-without-extra-space","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/","title":{"rendered":"Sorting Queue Without Extra Space"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1657607461347-Article.jpg\" alt=\"\" \/><\/p>\n<p>Sorting a queue without utilizing extra space presents an intriguing challenge in computer science. Queues, a fundamental data structure, follow the FIFO (First-In-First-Out) principle, making their sorting a complex task without additional storage. Unlike arrays or lists, queues lack direct access to elements beyond the front, complicating traditional sorting algorithms&#8217; implementation.<\/p>\n<p>In this article, we delve into the fascinating realm of sorting queues without the luxury of additional space. We explore various efficient algorithms and strategies that enable us to rearrange the elements within a queue to adhere to a sorted order while adhering to the constraints of space efficiency.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1657606562207-Image-01.png\" alt=\"\" \/><\/p>\n<p><strong>Given below are the operations of the queue:<\/strong><\/p>\n<ul>\n<li><strong>Enqueue<\/strong>: This function is used to add an element to the rear end of the queue. If the queue is completely filled, then it will be in an overflow condition. The time complexity of the enqueue is O(1).<\/li>\n<li><strong>Dequeue<\/strong>: This function is used to remove an element from the front end of the queue. If the queue is empty, then it will be in an underflow condition. The time complexity of the dequeue is O(1).<\/li>\n<li><strong>Front<\/strong>: This function returns the front element of the queue. The time complexity of this function is O(1).<\/li>\n<li><strong>Rear<\/strong>: This function returns the last element of the queue. The time complexity of this function is O(1).<\/li>\n<\/ul>\n<p>And we have C++ STL operations also such as isEmpty(): This operation is used to check whether the queue is empty or not.<\/p>\n<p><strong>Let&#8217;s take an example:<\/strong><br \/>\nInput queue 1 = 100 50 40 200<br \/>\nMODIFIED QUEUE<br \/>\nOutput queue = 40 50 100 200    <\/p>\n<p>Input queue 2 =  4 5 1 3 2<br \/>\nMODIFIED QUEUE<br \/>\nOutput queue 2 = 1 2 3 4 5<\/p>\n<h3>What if we are allowed to use extra space?<\/h3>\n<p>If we are allowed to use an extra space we\u2019ll use an array and move all the elements from the queue to array and then sort the array and finally move all the elements back to the queue.<\/p>\n<h3>How to do it without using an extra space?<\/h3>\n<p>So, on every iteration on the queue, we\u2019ll be looking for the next minimum index. To do this we dequeue the element then we enqueue the element until we will find the next minimum. Basically in this operation the queue is not changed at all and after we have found the minimum index then we dequeue and enqueue the elements from the queue except for the minimum index. After the traversal of the queue we\u2019ll insert the minimum from the rear of the queue. We keep on this until all minimums are pushed to the front and finally the queue will become sorted.<br \/>\nWe repeat this method for n times.<br \/>\nAnd also first we need to find the maximum, because on every iteration we need to find the next minimum so that we can compare it with the maximum element from the queue.<\/p>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_9068 {\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_9068 .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_9068 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_9068 .wpsm_nav-tabs > li.active > a, #tab_container_9068 .wpsm_nav-tabs > li.active > a:hover, #tab_container_9068 .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_9068 .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_9068 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_9068 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_9068 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_9068 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_9068 .wpsm_nav-tabs > li > a:hover , #tab_container_9068 .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_9068 .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_9068 .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_9068 .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_9068 .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_9068 .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_9068 .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_9068 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_9068 .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_9068 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_9068 .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_9068 .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_9068\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_9068\">\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_9068_1\" aria-controls=\"tabs_desc_9068_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\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_9068_2\" aria-controls=\"tabs_desc_9068_2\" 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>Java<\/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\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_9068_3\" aria-controls=\"tabs_desc_9068_3\" 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>Python<\/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_9068\">\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_9068_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n\r\n#include &lt;bits\/stdc++.h&gt;\r\nusing namespace std;\r\n\r\nint minIndex(queue&lt;int&gt; &amp;q, int sortedIndex)\r\n{\r\n\tint min_index = -1;\r\n\tint min_val = INT_MAX;\r\n\tint n = q.size();\r\n\tfor (int i=0; i&lt;n; i++)\r\n\t{\r\n\t\tint curr = q.front();\r\n\t\tq.pop(); \r\n\r\n\t\t\r\n\t\tif (curr &lt;= min_val &amp;&amp; i &lt;= sortedIndex)\r\n\t\t{\r\n\t\t\tmin_index = i;\r\n\t\t\tmin_val = curr;\r\n\t\t}\r\n\t\tq.push(curr); \r\n\t}\r\n\treturn min_index;\r\n}\r\n\r\nvoid insertMinToRear(queue&lt;int&gt; &amp;q, int min_index)\r\n{\r\n\tint min_val;\r\n\tint n = q.size();\r\n\tfor (int i = 0; i &lt; n; i++)\r\n\t{\r\n\t\tint curr = q.front();\r\n\t\tq.pop();\r\n\t\tif (i != min_index)\r\n\t\t\tq.push(curr);\r\n\t\telse\r\n\t\t\tmin_val = curr;\r\n\t}\r\n\tq.push(min_val);\r\n}\r\n\r\nvoid sortQueue(queue&lt;int&gt; &amp;q)\r\n{\r\n\tfor (int i = 1; i &lt;= q.size(); i++)\r\n\t{\r\n\t\tint min_index = minIndex(q, q.size() - i);\r\n\t\tinsertMinToRear(q, min_index);\r\n\t}\r\n}\r\n\r\nint main()\r\n{\r\nqueue&lt;int&gt; q;\r\nq.push(300);\r\nq.push(110);\r\nq.push(150);\r\nq.push(40);\r\n\r\nsortQueue(q);\r\n\r\nwhile (q.empty() == false)\r\n{\r\n\tcout &lt;&lt; q.front() &lt;&lt; &quot; &quot;;\r\n\tq.pop();\r\n}\r\ncout &lt;&lt; endl;\r\nreturn 0;\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_9068_2\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n\r\nimport java.util.LinkedList;\r\nimport java.util.Queue;\r\nclass GFG\r\n{\r\n\r\n\tpublic static int minIndex(Queue&lt;Integer&gt; list,\r\n\t\t\t\t\t\t\t\t\tint sortIndex)\r\n\t{\r\n\tint min_index = -1;\r\n\tint min_value = Integer.MAX_VALUE;\r\n\tint s = list.size();\r\n\tfor (int i = 0; i &lt; s; i++)\r\n\t{\r\n\t\tint current = list.peek();\r\n\t\t\r\n\t\r\n\t\tlist.poll();\r\n\r\n\t\tif (current &lt;= min_value &amp;&amp; i &lt;= sortIndex)\r\n\t\t{\r\n\t\t\tmin_index = i;\r\n\t\t\tmin_value = current;\r\n\t\t}\r\n\t\tlist.add(current);\r\n\t}\r\n\treturn min_index;\r\n}\r\n\r\n\tpublic static void insertMinToRear(Queue&lt;Integer&gt; list,\r\n\t\t\t\t\t\t\t\t\t\t\tint min_index)\r\n\t{\r\n\t\tint min_value = 0;\r\n\t\tint s = list.size();\r\n\t\tfor (int i = 0; i &lt; s; i++)\r\n\t\t{\r\n\t\tint current = list.peek();\r\n\t\tlist.poll();\r\n\t\tif (i != min_index)\r\n\t\t\tlist.add(current);\r\n\t\telse\r\n\t\t\tmin_value = current;\r\n\t\t}\r\n\t\tlist.add(min_value);\r\n\t}\r\n\t\r\n\tpublic static void sortQueue(Queue&lt;Integer&gt; list)\r\n\t{\r\n\t\tfor(int i = 1; i &lt;= list.size(); i++)\r\n\t\t{\r\n\t\t\tint min_index = minIndex(list,list.size() - i);\r\n\t\t\tinsertMinToRear(list, min_index);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static void main (String[] args)\r\n\t{\r\n\t\tQueue&lt;Integer&gt; list = new LinkedList&lt;Integer&gt;();\r\n\t\tlist.add(300);\r\n\t\tlist.add(110);\r\n\t\tlist.add(150);\r\n\t\tlist.add(40);\r\n\t\t\r\n\t\tsortQueue(list);\r\n\t\t\r\n\t\twhile(list.isEmpty()== false)\r\n\t\t{\r\n\t\t\tSystem.out.print(list.peek() + &quot; &quot;);\r\n\t\t\tlist.poll();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_9068_3\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"python\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n\r\nfrom queue import Queue\r\n\r\ndef minIndex(q, sortedIndex):\r\n\tmin_index = -1\r\n\tmin_val = 999999999999\r\n\tn = q.qsize()\r\n\tfor i in range(n):\r\n\t\tcurr = q.queue[0]\r\n\t\tq.get() \r\n\t\tif (curr <= min_val and i <= sortedIndex):\r\n\t\t\tmin_index = i\r\n\t\t\tmin_val = curr\r\n\t\tq.put(curr) \r\n\treturn min_index\r\n\r\ndef insertMinToRear(q, min_index):\r\n\tmin_val = None\r\n\tn = q.qsize()\r\n\tfor i in range(n):\r\n\t\tcurr = q.queue[0]\r\n\t\tq.get()\r\n\t\tif (i != min_index):\r\n\t\t\tq.put(curr)\r\n\t\telse:\r\n\t\t\tmin_val = curr\r\n\tq.put(min_val)\r\n\r\ndef sortQueue(q):\r\n\tfor i in range(1, q.qsize() + 1):\r\n\t\tmin_index = minIndex(q, q.qsize() - i)\r\n\t\tinsertMinToRear(q, min_index)\r\n\r\nif __name__ == '__main__':\r\n\tq = Queue()\r\n\tq.put(300)\r\n\tq.put(110)\r\n\tq.put(150)\r\n\tq.put(40)\r\n\t\r\n\tsortQueue(q)\r\n\t\r\n\twhile (q.empty() == False):\r\n\t\tprint(q.queue[0], end = \" \")\r\n\t\tq.get()\r\n\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\r\n\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_9068 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_9068 a\"),jQuery(\"#tab-content_9068\"));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>Conclusion<\/strong><br \/>\nSorting a queue without extra space challenges our understanding of data structures and algorithms. Through innovative strategies like recursion, the two-queue approach, or leveraging priority queues or heaps, we can achieve a sorted queue while adhering to space constraints.<\/p>\n<p>While each method has its advantages and complexities, understanding these techniques expands our problem-solving abilities and enriches our grasp of fundamental computer science principles.<\/p>\n<p>In conclusion, the quest to sort a queue without extra space not only fosters creativity but also underscores the versatility and adaptability of algorithms in managing constrained environments.<\/p>\n<h2>Frequently Asked Questions (FAQ) Related to Sorting Queue Without Extra Space<\/h2>\n<p>Here are some FAQs related to Sorting Queue Without Extra Space.<\/p>\n<p><strong>1. Why is sorting a queue without extra space challenging?<\/strong><br \/>\nQueues follow the FIFO principle and lack direct access to elements beyond the front. Traditional sorting algorithms often rely on extra space or random access to elements, making it challenging to apply them directly to queues without additional storage.<\/p>\n<p><strong>2. What are the advantages of sorting a queue without extra space?<\/strong><br \/>\nSorting a queue without extra space showcases efficient algorithm design, minimizing memory usage, and enhancing computational efficiency. It also deepens understanding and utilization of fundamental data structures and algorithms.<\/p>\n<p><strong>3. Which method is the most efficient for sorting a queue without extra space?<\/strong><br \/>\nThe efficiency of methods varies based on various factors such as the size of the queue, the complexity of the algorithm, and the specific constraints. Each method, like recursion, two-queue approach, or priority queues, has its trade-offs in terms of time and space complexity.<\/p>\n<p><strong>4. Can these sorting techniques be applied to other data structures?<\/strong><br \/>\nWhile these techniques are tailored for queues, variations or adaptations can be explored to sort elements in other data structures like stacks or specific types of linked lists. However, the direct application may require adjustments due to structural differences.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sorting a queue without utilizing extra space presents an intriguing challenge in computer science. Queues, a fundamental data structure, follow the FIFO (First-In-First-Out) principle, making their sorting a complex task without additional storage. Unlike arrays or lists, queues lack direct access to elements beyond the front, complicating traditional sorting algorithms&#8217; implementation. In this article, we [&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":[128],"tags":[],"class_list":["post-9074","post","type-post","status-publish","format-standard","hentry","category-queues"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Sorting Queue Without Extra Space | PrepBytes Blog<\/title>\n<meta name=\"description\" content=\"The queue is a linear data structure that works on the principle of FIFO. In this article, find the explanation to sort the queue without using any extra space.\" \/>\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\/sorting-queue-without-extra-space\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sorting Queue Without Extra Space | PrepBytes Blog\" \/>\n<meta property=\"og:description\" content=\"The queue is a linear data structure that works on the principle of FIFO. In this article, find the explanation to sort the queue without using any extra space.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/\" \/>\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=\"2022-07-12T09:35:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-27T12:38:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1657607461347-Article.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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Sorting Queue Without Extra Space\",\"datePublished\":\"2022-07-12T09:35:11+00:00\",\"dateModified\":\"2023-11-27T12:38:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/\"},\"wordCount\":777,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1657607461347-Article.jpg\",\"articleSection\":[\"Queues\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/\",\"name\":\"Sorting Queue Without Extra Space | PrepBytes Blog\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1657607461347-Article.jpg\",\"datePublished\":\"2022-07-12T09:35:11+00:00\",\"dateModified\":\"2023-11-27T12:38:22+00:00\",\"description\":\"The queue is a linear data structure that works on the principle of FIFO. In this article, find the explanation to sort the queue without using any extra space.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1657607461347-Article.jpg\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1657607461347-Article.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Queues\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/queues\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Sorting Queue Without Extra Space\"}]},{\"@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":"Sorting Queue Without Extra Space | PrepBytes Blog","description":"The queue is a linear data structure that works on the principle of FIFO. In this article, find the explanation to sort the queue without using any extra space.","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\/sorting-queue-without-extra-space\/","og_locale":"en_US","og_type":"article","og_title":"Sorting Queue Without Extra Space | PrepBytes Blog","og_description":"The queue is a linear data structure that works on the principle of FIFO. In this article, find the explanation to sort the queue without using any extra space.","og_url":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2022-07-12T09:35:11+00:00","article_modified_time":"2023-11-27T12:38:22+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1657607461347-Article.jpg","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Sorting Queue Without Extra Space","datePublished":"2022-07-12T09:35:11+00:00","dateModified":"2023-11-27T12:38:22+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/"},"wordCount":777,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1657607461347-Article.jpg","articleSection":["Queues"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/","url":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/","name":"Sorting Queue Without Extra Space | PrepBytes Blog","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1657607461347-Article.jpg","datePublished":"2022-07-12T09:35:11+00:00","dateModified":"2023-11-27T12:38:22+00:00","description":"The queue is a linear data structure that works on the principle of FIFO. In this article, find the explanation to sort the queue without using any extra space.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1657607461347-Article.jpg","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1657607461347-Article.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/sorting-queue-without-extra-space\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Queues","item":"https:\/\/prepbytes.com\/blog\/category\/queues\/"},{"@type":"ListItem","position":3,"name":"Sorting Queue Without Extra Space"}]},{"@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\/9074","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=9074"}],"version-history":[{"count":4,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/9074\/revisions"}],"predecessor-version":[{"id":18390,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/9074\/revisions\/18390"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=9074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=9074"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=9074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}