{"id":34624,"date":"2024-11-01T09:30:15","date_gmt":"2024-11-01T09:30:15","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34624"},"modified":"2024-11-01T11:40:27","modified_gmt":"2024-11-01T11:40:27","slug":"javascript-coding-test-course-insertion-sort","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34624\/","title":{"rendered":"JavaScript Coding Test Course, Insertion Sort"},"content":{"rendered":"<p><body><\/p>\n<p>Hello! In this post, we will learn how to solve algorithm problems using JavaScript. The topic is &#8216;Insertion Sort&#8217;. All algorithms are means to solve specific problems, and insertion sort is one of the most fundamental and important sorting algorithms. Through this article, we will understand the concept of insertion sort and explore in detail how to implement it in JavaScript.<\/p>\n<h2>1. What is Insertion Sort?<\/h2>\n<p>Insertion sort is a very efficient sorting algorithm when the data is nearly sorted. This algorithm basically divides the list into two parts and builds a sorted list by inserting new elements into their appropriate positions. It has a methodology of comparing each element one by one and inserting it into its rightful place.<\/p>\n<h3>1.1. How Insertion Sort Works<\/h3>\n<p>The basic process of insertion sort works as follows:<\/p>\n<ol>\n<li>Compare the first two elements.<\/li>\n<li>If the first element is greater than the second element, swap their positions.<\/li>\n<li>Select the next element and appropriately insert it into the sorted list. Repeat this process until all elements are sorted.<\/li>\n<\/ol>\n<h2>2. Time Complexity of Insertion Sort<\/h2>\n<p>The average time complexity of insertion sort is O(n\u00b2). Even in the worst case, it remains O(n\u00b2), and it only shows O(n) performance in the best case. However, the best case occurs when the data is already sorted. For this reason, insertion sort is very efficient for cases with a small number of elements or nearly sorted data.<\/p>\n<h2>3. Problem Definition<\/h2>\n<h3>3.1. Problem Statement<\/h3>\n<p>Given an integer array like the following, write a function to sort the array in ascending order using insertion sort.<\/p>\n<pre><code>\nInput: [5, 2, 9, 1, 5, 6]\nOutput: [1, 2, 5, 5, 6, 9]\n    <\/code><\/pre>\n<h2>4. Algorithm Implementation<\/h2>\n<p>Now let&#8217;s actually implement insertion sort in JavaScript. The code is simple and is as follows:<\/p>\n<pre><code>\nfunction insertionSort(arr) {\n    for (let i = 1; i &lt; arr.length; i++) {\n        let key = arr[i];\n        let j = i - 1;\n\n        \/\/ Compare the current key with the sorted part to find position\n        while (j &gt;= 0 &amp;&amp; arr[j] &gt; key) {\n            arr[j + 1] = arr[j];  \/\/ Move position\n            j--;\n        }\n        arr[j + 1] = key;  \/\/ Insert position\n    }\n    return arr;\n}\n\n\/\/ Test\nconst input = [5, 2, 9, 1, 5, 6];\nconsole.log(insertionSort(input));  \/\/ [1, 2, 5, 5, 6, 9]\n    <\/code><\/pre>\n<h3>4.1. Code Explanation<\/h3>\n<p>The above code is structured as follows:<\/p>\n<ul>\n<li><strong>for loop:<\/strong> Starts from the second element of the array (index 1) and iterates to the last element of the array.<\/li>\n<li><strong>key variable:<\/strong> This is the element that is currently used as a reference. This value will be inserted into the sorted array.<\/li>\n<li><strong>while loop:<\/strong> Compares the current element (key) with the sorted part (left) to find its position. Moves larger elements to the right.<\/li>\n<li>Inserts each element into its appropriate position and ultimately returns the sorted array.<\/li>\n<\/ul>\n<h2>5. Performance Analysis<\/h2>\n<p>The performance of insertion sort depends on the composition of the input data, but it generally has an average speed of O(n\u00b2) for an array of length n. It is very simple, but it does not perform well on large datasets, so it is common to use it alongside other sorting algorithms in practical applications.<\/p>\n<h2>6. Advantages and Disadvantages of Insertion Sort<\/h2>\n<h3>6.1. Advantages<\/h3>\n<ul>\n<li>It can be easily implemented.<\/li>\n<li>It is very fast when the data is nearly sorted.<\/li>\n<li>It uses little memory and does not require additional space.<\/li>\n<li>It is a stable sorting algorithm.<\/li>\n<\/ul>\n<h3>6.2. Disadvantages<\/h3>\n<ul>\n<li>It is inefficient for large datasets.<\/li>\n<li>With a time complexity of O(n\u00b2), it performs poorly in the worst case.<\/li>\n<\/ul>\n<h2>7. Conclusion<\/h2>\n<p>In this post, we learned about insertion sort. It is a simple sorting algorithm, but understanding and utilizing its structure and working mechanism is very useful. In particular, it is a fundamental algorithm you must know when writing advanced algorithms in JavaScript. In the next tutorial, we will compare it with other sorting algorithms to further expand your understanding of algorithms!<\/p>\n<h2>8. References<\/h2>\n<ul>\n<li><a href=\"https:\/\/ko.wikipedia.org\/wiki\/%EC%82%AD%EC%9E%A5_%EC%A0%95%EB%A0%AC\">Wikipedia &#8211; Insertion Sort<\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/ko\/docs\/Web\/JavaScript\/Guide\/Inheritance_and_the_prototypal_chain\">MDN &#8211; JavaScript Guide<\/a><\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello! In this post, we will learn how to solve algorithm problems using JavaScript. The topic is &#8216;Insertion Sort&#8217;. All algorithms are means to solve specific problems, and insertion sort is one of the most fundamental and important sorting algorithms. Through this article, we will understand the concept of insertion sort and explore in detail &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34624\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;JavaScript Coding Test Course, Insertion Sort&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[141],"tags":[],"class_list":["post-34624","post","type-post","status-publish","format-standard","hentry","category-javascript-coding-test"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JavaScript Coding Test Course, Insertion Sort - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/34624\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript Coding Test Course, Insertion Sort - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! In this post, we will learn how to solve algorithm problems using JavaScript. The topic is &#8216;Insertion Sort&#8217;. All algorithms are means to solve specific problems, and insertion sort is one of the most fundamental and important sorting algorithms. Through this article, we will understand the concept of insertion sort and explore in detail &hellip; \ub354 \ubcf4\uae30 &quot;JavaScript Coding Test Course, Insertion Sort&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34624\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:30:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:40:27+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/34624\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34624\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"JavaScript Coding Test Course, Insertion Sort\",\"datePublished\":\"2024-11-01T09:30:15+00:00\",\"dateModified\":\"2024-11-01T11:40:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34624\/\"},\"wordCount\":559,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Javascript Coding Test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34624\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34624\/\",\"name\":\"JavaScript Coding Test Course, Insertion Sort - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:30:15+00:00\",\"dateModified\":\"2024-11-01T11:40:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34624\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34624\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34624\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript Coding Test Course, Insertion Sort\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JavaScript Coding Test Course, Insertion Sort - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","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:\/\/atmokpo.com\/w\/34624\/","og_locale":"ko_KR","og_type":"article","og_title":"JavaScript Coding Test Course, Insertion Sort - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! In this post, we will learn how to solve algorithm problems using JavaScript. The topic is &#8216;Insertion Sort&#8217;. All algorithms are means to solve specific problems, and insertion sort is one of the most fundamental and important sorting algorithms. Through this article, we will understand the concept of insertion sort and explore in detail &hellip; \ub354 \ubcf4\uae30 \"JavaScript Coding Test Course, Insertion Sort\"","og_url":"https:\/\/atmokpo.com\/w\/34624\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:30:15+00:00","article_modified_time":"2024-11-01T11:40:27+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/34624\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34624\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"JavaScript Coding Test Course, Insertion Sort","datePublished":"2024-11-01T09:30:15+00:00","dateModified":"2024-11-01T11:40:27+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34624\/"},"wordCount":559,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Javascript Coding Test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34624\/","url":"https:\/\/atmokpo.com\/w\/34624\/","name":"JavaScript Coding Test Course, Insertion Sort - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:30:15+00:00","dateModified":"2024-11-01T11:40:27+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34624\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34624\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34624\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"JavaScript Coding Test Course, Insertion Sort"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=34624"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34624\/revisions"}],"predecessor-version":[{"id":34625,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34624\/revisions\/34625"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}