{"id":5241,"date":"2021-09-29T11:25:41","date_gmt":"2021-09-29T11:25:41","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=5241"},"modified":"2023-04-20T10:47:20","modified_gmt":"2023-04-20T10:47:20","slug":"insertion-sort-for-singly-linked-list","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/","title":{"rendered":"Insertion Sort for Singly Linked List"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645007641555-Article_166.png\" alt=\"\" \/><\/p>\n<p>Insertion sort is a simple and efficient sorting algorithm that works well on small or nearly sorted data sets and it works similarly to the way you sort playing cards in your hands. The elements are virtually split into a sorted and an unsorted part. Values from the unsorted part are picked and placed in the correct position in the sorted part. Insertion sort is also an ideal sorting algorithm for sorting the singly linked list. Let us study in detail the insertion sort in linked list and understand how the insertion sort using linked list works.<\/p>\n<h2>Insertion Sort in Linked List<\/h2>\n<p>To perform the insertion sort using linked list, we will be given a singly linked list. We need to return the pointer to the head node after sorting the given linked list.<\/p>\n<p><strong>Input linked list:<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2021\/09\/input-23.png\" alt=\"\" \/><\/p>\n<p><strong>Output after performing the insertion sort in linked list:<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2021\/09\/output-26.png\" alt=\"\" \/><\/p>\n<p><strong>Explanation:<\/strong> The given linked list is sorted and the sorted linked list is printed in the output.<\/p>\n<p>This problem is not a tricky one. Let\u2019s start performing insertion sort in linked list.<\/p>\n<ul>\n<li>We just have to extract the elements from the list one by one, insert them in the new list in a sorted way, and return the new list.<\/li>\n<li>To see how to insert an element in a sorted way in a sorted linked list, check out this &#8211; <a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/given-a-linked-list-which-is-sorted-how-to-insert-in-a-sorted-way\/\" title=\"Given a linked list which is sorted, how to insert in a sorted way.\">Given a linked list which is sorted, how to insert in a sorted way.<\/a><\/li>\n<\/ul>\n<p>Let us take a brief look at the approach to perform the insertion sort using linked list.<\/p>\n<h3>How to Perform Insertion Sort In Linked List?<\/h3>\n<p>The approach for performing insertion sort in linked list is going to be pretty simple.<\/p>\n<ul>\n<li>We will create an empty result singly linked list, which will be sorted.<\/li>\n<li>Then, we will traverse the given linked list, and for every node that we visit, we will insert the current node in a sorted way in our result list.<\/li>\n<li>To insert in a sorted way, follow these steps:\n<ul>\n<li>We will traverse our result list and keep comparing every node with our current node.<\/li>\n<li>As soon as we find a node whose value is greater than the current node, we will insert the current node just before that node.<\/li>\n<li>If the current node value is greater than every other node of our result list, then we will append the current node at the end.<\/li>\n<\/ul>\n<\/li>\n<li>After complete traversal, change the head of the given linked list to the head of the result list.<\/li>\n<li>Finally, return the head of the sorted linked list.<\/li>\n<\/ul>\n<p>Let\u2019s move to the algorithm to perform insertion sort using linked list to understand the approach in a more clear way<\/p>\n<h3>Algorithm For Performing Insertion Sort Using Linked List<\/h3>\n<p>Here is the stepwise algorithm for performing the insertion sort in linked list.<\/p>\n<ul>\n<li><strong>Step 1:<\/strong> Initialize the newly created sorted list as NULL.<\/li>\n<li><strong>Step 2:<\/strong> Traverse the given singly linked list using a pointer say <strong>current.<\/strong>\n<ul>\n<li>For every node, while traversal, store the next of node in a <strong>temp<\/strong> variable and remove all of its links.<\/li>\n<li>Insert the <strong>current<\/strong> node in a sorted way in the <strong>result list.<\/strong><\/li>\n<li>Update the <strong>current<\/strong> value with a <strong>temp<\/strong> for further traversal.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Step 3:<\/strong> Once the traversal is over, update the head pointer by making it point to our result list.<\/li>\n<li><strong>Step 4:<\/strong> Return the head pointer.<\/li>\n<\/ul>\n<h3>Dry Run For Performing Insertion Sort in Linked List<\/h3>\n<p>The dry run for the above-mentioned algorithm is given below.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2021\/09\/p_1-30.png\" alt=\"\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2021\/09\/p_2-30.png\" alt=\"\" \/><\/p>\n<h3>Code Implementation For Performing Insertion Sort in Linked List<\/h3>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_5242 {\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_5242 .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_5242 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_5242 .wpsm_nav-tabs > li.active > a, #tab_container_5242 .wpsm_nav-tabs > li.active > a:hover, #tab_container_5242 .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_5242 .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_5242 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_5242 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_5242 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_5242 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_5242 .wpsm_nav-tabs > li > a:hover , #tab_container_5242 .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_5242 .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_5242 .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_5242 .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_5242 .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_5242 .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_5242 .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_5242 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_5242 .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_5242 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_5242 .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_5242 .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_5242\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_5242\">\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_5242_1\" aria-controls=\"tabs_desc_5242_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_5242_2\" aria-controls=\"tabs_desc_5242_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>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_5242_3\" aria-controls=\"tabs_desc_5242_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>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_5242_4\" aria-controls=\"tabs_desc_5242_4\" 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_5242\">\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_5242_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"c\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include &lt;stdio.h&gt;\r\n#include &lt;stdlib.h&gt;\r\n \r\nstruct node {\r\n    int data;\r\n    struct node* next;\r\n};\r\n \r\nstruct node* head = NULL;\r\nstruct node* sorted = NULL;\r\n \r\nvoid push(int val)\r\n{\r\n    \/* allocate node *\/\r\n    struct node* newnode\r\n        = (struct node*)malloc(sizeof(struct node));\r\n    newnode-&gt;data = val;\r\n    \/* link the old list off the new node *\/\r\n    newnode-&gt;next = head;\r\n    \/* move the head to point to the new node *\/\r\n    head = newnode;\r\n}\r\nvoid sortedInsert(struct node* newnode)\r\n{\r\n    \/* Special case for the head end *\/\r\n    if (sorted == NULL || sorted-&gt;data &gt;= newnode-&gt;data) {\r\n        newnode-&gt;next = sorted;\r\n        sorted = newnode;\r\n    }\r\n    else {\r\n        struct node* current = sorted;\r\n        \/* Locate the node before the point of insertion\r\n         *\/\r\n        while (current-&gt;next != NULL\r\n               &amp;&amp; current-&gt;next-&gt;data &lt; newnode-&gt;data) {\r\n            current = current-&gt;next;\r\n        }\r\n        newnode-&gt;next = current-&gt;next;\r\n        current-&gt;next = newnode;\r\n    }\r\n}\r\n \r\n\/\/ function to sort a singly linked list\r\n\/\/ using insertion sort\r\nvoid insertionsort()\r\n{\r\n \r\n    struct node* current = head;\r\n \r\n    \/\/ Traverse the given linked list and insert every\r\n    \/\/ node to sorted\r\n    while (current != NULL) {\r\n \r\n        \/\/ Store next for next iteration\r\n        struct node* next = current-&gt;next;\r\n \r\n        \/\/ insert current in sorted linked list\r\n        sortedInsert(current);\r\n \r\n        \/\/ Update current\r\n        current = next;\r\n    }\r\n    \/\/ Update head to point to sorted linked list\r\n    head = sorted;\r\n}\r\n \r\n\/* Function to print linked list *\/\r\nvoid printlist(struct node* head)\r\n{\r\n    while (head != NULL) {\r\n        printf(&quot;%d-&gt;&quot;, head-&gt;data);\r\n        head = head-&gt;next;\r\n    }\r\n    printf(&quot;NULL&quot;);\r\n}\r\n \r\n\/\/ Driver program to test above functions\r\nint main()\r\n{\r\n \r\n    push(5);\r\n    push(20);\r\n    push(4);\r\n    push(3);\r\n    push(30);\r\n \r\n    printf(&quot;Linked List before sorting:&#92;n&quot;);\r\n    printlist(head);\r\n    printf(&quot;&#92;n&quot;);\r\n \r\n    insertionsort(head);\r\n \r\n    printf(&quot;Linked List after sorting:&#92;n&quot;);\r\n    printlist(head);\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\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_5242_2\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include &lt;bits stdc++.h=&quot;&quot;&gt;\r\nusing namespace std;\r\n \r\nstruct Node {\r\n    int val;\r\n    struct Node* next;\r\n    Node(int x)\r\n    {\r\n        val = x;\r\n        next = NULL;\r\n    }\r\n};\r\n \r\nclass LinkedlistIS {\r\n \r\npublic:\r\n    Node* head;\r\n    Node* newhead;\r\n \r\n    void push(int val)\r\n    {\r\n\r\n        Node* newnode = new Node(val);\r\n\r\n        newnode-&gt;next = head;\r\n \r\n        head = newnode;\r\n    }\r\n \r\n    void insertionSort(Node* headref)\r\n    {\r\n        newhead = NULL;\r\n        Node* current = headref;\r\n\r\n        while (current != NULL) {\r\n\r\n            Node* temp = current-&gt;next;\r\n\r\n            sortedInsert(current);\r\n            \/\/ Update current\r\n            current = temp;\r\n        }\r\n\r\n        head = newhead;\r\n    }\r\n    \r\n    void sortedInsert(Node* newnode)\r\n    {\r\n\r\n        if (newhead == NULL || newhead-&gt;val &gt;= newnode-&gt;val) {\r\n            newnode-&gt;next = newhead;\r\n            newhead = newnode;\r\n        }\r\n        else {\r\n            Node* current = newhead;\r\n \r\n            while (current-&gt;next != NULL\r\n                   &amp;&amp; current-&gt;next-&gt;val &lt; newnode-&gt;val) {\r\n                current = current-&gt;next;\r\n            }\r\n            newnode-&gt;next = current-&gt;next;\r\n            current-&gt;next = newnode;\r\n        }\r\n    }\r\n\r\n    void printlist(Node* head)\r\n    {\r\n        while (head != NULL) {\r\n            cout &lt;&lt; head-&gt;val &lt;&lt; &quot; &quot;;\r\n            head = head-&gt;next;\r\n        }\r\n    }\r\n};\r\nint main()\r\n{\r\n    LinkedlistIS list;\r\n    list.head = NULL;\r\n\r\n    list.push(3);\r\n    list.push(1);\r\n    list.push(2);\r\n    list.push(4);\r\n    list.push(5);\r\n    cout &lt;&lt; &quot;Linked List before sorting&quot; &lt;&lt; endl;\r\n    list.printlist(list.head);\r\n    cout &lt;&lt; endl;\r\n    list.insertionSort(list.head);\r\n    cout &lt;&lt; &quot;Sorted Linked List&quot; &lt;&lt; endl;\r\n    list.printlist(list.head);\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\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_5242_3\">\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\npublic class LinkedlistIS\r\n{\r\n    node head;\r\n    node newhead;\r\n \r\n    class node\r\n    {\r\n        int val;\r\n        node next;\r\n \r\n        public node(int val)\r\n        {\r\n            this.val = val;\r\n        }\r\n    }\r\n \r\n    void push(int val)\r\n    {\r\n\r\n        node newnode = new node(val);\r\n\r\n        newnode.next = head;\r\n\r\n        head = newnode;\r\n    }\r\n\r\n    void insertionSort(node headref)\r\n    {\r\n \r\n        newhead = null;\r\n        node current = headref;\r\n\r\n        while (current != null)\r\n        {\r\n\r\n            node temp = current.next;\r\n\r\n            sortedInsert(current);\r\n\r\n            current = temp;\r\n        }\r\n\r\n        head = newhead;\r\n    }\r\n\r\n    void sortedInsert(node newnode)\r\n    {\r\n\r\n        if (newhead == null || newhead.val &gt;= newnode.val)\r\n        {\r\n            newnode.next = newhead;\r\n            newhead = newnode;\r\n        }\r\n        else\r\n        {\r\n            node current = newhead;\r\n\r\n            while (current.next != null &amp;&amp; current.next.val &lt; newnode.val)\r\n            {\r\n                current = current.next;\r\n            }\r\n            newnode.next = current.next;\r\n            current.next = newnode;\r\n        }\r\n    }\r\n\r\n    void printlist(node head)\r\n    {\r\n        while (head != null)\r\n        {\r\n            System.out.print(head.val + &quot; &quot;);\r\n            head = head.next;\r\n        }\r\n    }\r\n     \r\n\r\n    public static void main(String[] args)\r\n    {\r\n        LinkedlistIS list = new LinkedlistIS();\r\n\r\n        list.push(3);\r\n        list.push(1);\r\n        list.push(2);\r\n        list.push(4);\r\n        list.push(5);\r\n        System.out.println(&quot;Linked List before Sorting..&quot;);\r\n        list.printlist(list.head);\r\n        list.insertionSort(list.head);\r\n        System.out.println(&quot;&#92;nSorted Linked List&quot;);\r\n        list.printlist(list.head);\r\n    }\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\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_5242_4\">\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\nclass Node:\r\n    \r\n    def __init__(self, data):\r\n        self.data = data\r\n        self.next = None\r\n\r\ndef insertionSort(head_ref):\r\n\r\n    sorted = None\r\n    current = head_ref\r\n    while (current != None):\r\n    \r\n        next = current.next\r\n        sorted = sortedInsert(sorted, current)\r\n        current = next\r\n    \r\n    head_ref = sorted\r\n    return head_ref\r\n\r\ndef sortedInsert(head_ref, new_node):\r\n\r\n    current = None\r\n\r\n    if (head_ref == None or (head_ref).data &gt;= new_node.data):\r\n    \r\n        new_node.next = head_ref\r\n        head_ref = new_node\r\n    \r\n    else:\r\n    \r\n        current = head_ref\r\n        while (current.next != None and\r\n            current.next.data &lt; new_node.data):\r\n        \r\n            current = current.next\r\n        \r\n        new_node.next = current.next\r\n        current.next = new_node\r\n        \r\n    return head_ref\r\n\r\n\r\ndef printList(head):\r\n\r\n    temp = head\r\n    while(temp != None):\r\n    \r\n        print( temp.data, end = &quot; &quot;)\r\n        temp = temp.next\r\n    \r\ndef push( head_ref, new_data):\r\n\r\n    new_node = Node(0)\r\n    new_node.data = new_data\r\n    new_node.next = (head_ref)\r\n    (head_ref) = new_node\r\n    return head_ref\r\n\r\n\r\na = None\r\na = push(a, 3)\r\na = push(a, 1)\r\na = push(a, 2)\r\na = push(a, 4)\r\na = push(a, 5)\r\n\r\nprint(&quot;Linked List before sorting &quot;)\r\nprintList(a)\r\n\r\na = insertionSort(a)\r\n\r\nprint(&quot;&#92;nLinked List after sorting &quot;)\r\nprintList(a)\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\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_5242 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_5242 a\"),jQuery(\"#tab-content_5242\"));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>Output<\/strong><\/p>\n<pre><code>Linked List before Sorting.\n5 4 2 1 3\nSorted Linked List\n1 2 3 4 5<\/code><\/pre>\n<p><strong>Time Complexity For Performing Insertion Sort using Linked List:<\/strong> O(n2), as we are using nested traversal<\/p>\n<p><strong>Space Complexity For Performing Insertion Sort using Linked List:<\/strong> O(1), as no extra is required depending on the size of the input.<\/p>\n<h2>Frequently Asked Questions(FAQs)<\/h2>\n<p>Here are some Frequently Asked Questions related to insertion sort in linked list.<\/p>\n<p><strong>Ques 1. What is insertion sort?<\/strong><br \/>\n<strong>Ans.<\/strong> Insertion sort is a simple sorting algorithm that works by dividing the input into two sections: a sorted section and an unsorted section. Initially, the sorted section is empty, and the unsorted section contains all the elements in the input. The algorithm then iterates through the unsorted section, comparing each element with the elements in the sorted section and inserting it in the correct position.<\/p>\n<p><strong>Ques 2. Why insertion is faster in the LinkedList in comparison to ArrayList?<\/strong><br \/>\n<strong>Ans.<\/strong> A LinkedList consumes a bit more memory than an ArrayList since every node stores two references to the previous and next elements. The insertion, addition, and removal operations are faster in a LinkedList because there is no resizing of an array done in the background.<\/p>\n<p><strong>Ques 3. What happens if the linked list is empty during insertion sort?<\/strong><br \/>\n<strong>Ans.<\/strong> If the linked list is empty during insertion sort, the algorithm simply returns the empty list.<\/p>\n<p><strong>Ques 4. Is insertion sort in linked list stable?<\/strong><br \/>\n<strong>Ans.<\/strong> Yes, insertion sort in linked list is stable, meaning that the order of equal elements in the original list will be preserved after sorting.<\/p>\n<table width=\"641\">\n<tbody>\n<tr>\n<td colspan=\"2\" width=\"641\" style=\"text-align: center\"><strong>Related Articles<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/doubly-circular-linked-list-introduction-and-insertion\/\">Doubly circular linked list in data structure<\/a><\/td>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/advantages-disadvantages-and-uses-of-a-doubly-linked-list\/\">Application of doubly linked list<\/a><\/td>\n<\/tr>\n<tr>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/applications-of-linked-list-data-structure\/\">Applications of linked list<\/a><\/td>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/difference-between-a-singly-linked-list-and-a-doubly-linked-list\/\">Singly linked list vs doubly linked list<\/a><\/td>\n<\/tr>\n<tr>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/advantage-and-disadvantage-of-linked-list-over-array\/\">Advantages and disadvantages of linked list<\/a><\/td>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/menu-driven-program-for-all-operations-on-doubly-linked-list-in-c\/\">Doubly linked list all operations in C<\/a><\/td>\n<\/tr>\n<tr>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/binary-search\/binary-search-on-linked-list\/\">Binary search in linked list<\/a><\/td>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/bubble-sort-for-linked-list-by-swapping-nodes\/\">Bubble sort linked list<\/a><\/td>\n<\/tr>\n<tr>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/delete-a-node-in-doubly-linked-list\/\">Deletion in doubly linked list<\/a><\/td>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/delete-middle-of-linked-list\/\">Delete the middle node of a linked list<\/a><\/td>\n<\/tr>\n<tr>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/adding-two-polynomials-using-linked-list\/\">Polynomial addition using linked list<\/a><\/td>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/find-the-smallest-and-largest-elements-in-a-singly-linked-list\/\">Find max value and min value in linked list<\/a><\/td>\n<\/tr>\n<tr>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/insert-a-node-at-a-specific-position-in-a-linked-list\/\">Insert a node at a specific position in a linked list<\/a><\/td>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/swap-nodes-in-a-linked-list-without-swapping-data\/\">Swap nodes in linked list<\/a><\/td>\n<\/tr>\n<tr>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/add-two-numbers-represented-by-linked-lists-set-1\/\">Add two numbers represented by linked lists<\/a><\/td>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/find-the-first-node-of-the-loop-in-a-linked-list\/\">Find starting point of loop in linked list<\/a><\/td>\n<\/tr>\n<tr>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/merge-sort-on-a-singly-linked-list\/\">Merge sort linked list<\/a><\/td>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/delete-a-node-at-a-given-position\/\">Delete a node from linked list at a given position<\/a><\/td>\n<\/tr>\n<tr>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/linked-list\/remove-duplicates-from-an-unsorted-linked-list\/\">Remove duplicates from unsorted linked list<\/a><\/td>\n<td width=\"321\"><a href=\"https:\/\/prepbytes.com\/blog\/python\/python-program-to-reverse-a-linked-list\/\">Reverse a linked list in Python<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Insertion sort is a simple and efficient sorting algorithm that works well on small or nearly sorted data sets and it works similarly to the way you sort playing cards in your hands. The elements are virtually split into a sorted and an unsorted part. Values from the unsorted part are picked and placed in [&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":[125],"tags":[],"class_list":["post-5241","post","type-post","status-publish","format-standard","hentry","category-linked-list"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Insertion Sort for Singly Linked List | Linked List | Prepbytes<\/title>\n<meta name=\"description\" content=\"Learn the most efficient way to sort a singly linked list using the insertion sort technique.\" \/>\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\/insertion-sort-for-singly-linked-list\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Insertion Sort for Singly Linked List | Linked List | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"Learn the most efficient way to sort a singly linked list using the insertion sort technique.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/\" \/>\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=\"2021-09-29T11:25:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-20T10:47:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645007641555-Article_166.png\" \/>\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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Insertion Sort for Singly Linked List\",\"datePublished\":\"2021-09-29T11:25:41+00:00\",\"dateModified\":\"2023-04-20T10:47:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/\"},\"wordCount\":969,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645007641555-Article_166.png\",\"articleSection\":[\"Linked list articles\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/\",\"name\":\"Insertion Sort for Singly Linked List | Linked List | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645007641555-Article_166.png\",\"datePublished\":\"2021-09-29T11:25:41+00:00\",\"dateModified\":\"2023-04-20T10:47:20+00:00\",\"description\":\"Learn the most efficient way to sort a singly linked list using the insertion sort technique.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645007641555-Article_166.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645007641555-Article_166.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Linked list articles\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/linked-list\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Insertion Sort for Singly Linked List\"}]},{\"@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":"Insertion Sort for Singly Linked List | Linked List | Prepbytes","description":"Learn the most efficient way to sort a singly linked list using the insertion sort technique.","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\/insertion-sort-for-singly-linked-list\/","og_locale":"en_US","og_type":"article","og_title":"Insertion Sort for Singly Linked List | Linked List | Prepbytes","og_description":"Learn the most efficient way to sort a singly linked list using the insertion sort technique.","og_url":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2021-09-29T11:25:41+00:00","article_modified_time":"2023-04-20T10:47:20+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645007641555-Article_166.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Insertion Sort for Singly Linked List","datePublished":"2021-09-29T11:25:41+00:00","dateModified":"2023-04-20T10:47:20+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/"},"wordCount":969,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645007641555-Article_166.png","articleSection":["Linked list articles"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/","url":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/","name":"Insertion Sort for Singly Linked List | Linked List | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645007641555-Article_166.png","datePublished":"2021-09-29T11:25:41+00:00","dateModified":"2023-04-20T10:47:20+00:00","description":"Learn the most efficient way to sort a singly linked list using the insertion sort technique.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645007641555-Article_166.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645007641555-Article_166.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/insertion-sort-for-singly-linked-list\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Linked list articles","item":"https:\/\/prepbytes.com\/blog\/category\/linked-list\/"},{"@type":"ListItem","position":3,"name":"Insertion Sort for Singly Linked List"}]},{"@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\/5241","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=5241"}],"version-history":[{"count":8,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/5241\/revisions"}],"predecessor-version":[{"id":15821,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/5241\/revisions\/15821"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=5241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=5241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=5241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}