{"id":33386,"date":"2024-11-01T09:16:03","date_gmt":"2024-11-01T09:16:03","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33386"},"modified":"2024-11-01T11:38:55","modified_gmt":"2024-11-01T11:38:55","slug":"java-coding-test-course-insertion-sort","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33386\/","title":{"rendered":"Java Coding Test Course, Insertion Sort"},"content":{"rendered":"<p><body><\/p>\n<p>Hello! In this article, we will discuss one of the algorithms that frequently appear in coding tests using the Java programming language: &#8216;Insertion Sort&#8217;. Insertion Sort is a comparison-based sorting algorithm that is widely used among beginner programmers due to its efficiency and simplicity. In this article, we will explain the theoretical background of Insertion Sort, implement the sorting algorithm through a problem, and describe the process in detail.<\/p>\n<h2>What is Insertion Sort?<\/h2>\n<p>Insertion Sort is a sorting algorithm that inserts each element of an unsorted dataset into a sorted portion one by one. You can think of this algorithm as similar to organizing cards in a card game. In other words, you take out each card and insert it into the appropriate position in a pile of already sorted cards.<\/p>\n<h3>How the Insertion Sort Algorithm Works<\/h3>\n<ol>\n<li>Consider an array that is divided into a sorted part and an unsorted part.<\/li>\n<li>Select the first element from the unsorted part.<\/li>\n<li>Find the position of the selected element in the sorted part and insert it there.<\/li>\n<li>Repeat the above process until there are no unsorted elements left.<\/li>\n<\/ol>\n<p>The time complexity of this algorithm is <code>O(n^2)<\/code> in the worst case, <code>O(n)<\/code> in the best case, and <code>O(n^2)<\/code> on average. However, because of its slow performance on smaller datasets, other sorting algorithms (e.g., Quick Sort, Heap Sort, etc.) may be more suitable for large datasets.<\/p>\n<h2>Algorithm Problem: Implementing Insertion Sort<\/h2>\n<p>Here is a problem to implement the Insertion Sort algorithm.<\/p>\n<h3>Problem Description<\/h3>\n<p>Write a function to sort a given integer array in ascending order.<\/p>\n<h3>Input<\/h3>\n<pre><code>Length of the array n (1 \u2264 n \u2264 1000)\nInteger array a (1 \u2264 a[i] \u2264 10^6)<\/code><\/pre>\n<h3>Output<\/h3>\n<pre><code>Array sorted in ascending order<\/code><\/pre>\n<h3>Sample Input<\/h3>\n<pre><code>5\n5 2 9 1 5<\/code><\/pre>\n<h3>Sample Output<\/h3>\n<pre><code>1 2 5 5 9<\/code><\/pre>\n<h2>Process for Solving the Problem<\/h2>\n<p>To solve this problem, we will implement the Insertion Sort algorithm in Java following the steps below.<\/p>\n<h3>1. Input the Array<\/h3>\n<p>First, we need to input the length of the array and its elements. This can be easily done using Java&#8217;s <code>Scanner<\/code> class.<\/p>\n<pre><code>import java.util.Scanner;\n\npublic class InsertionSort {\n    public static void main(String[] args) {\n        Scanner scanner = new Scanner(System.in);\n        \/\/ Input the length of the array\n        int n = scanner.nextInt();\n        int[] arr = new int[n];\n        \n        \/\/ Input the elements of the array\n        for (int i = 0; i &lt; n; i++) {\n            arr[i] = scanner.nextInt();\n        }\n    }\n}<\/code><\/pre>\n<h3>2. Implement the Insertion Sort Algorithm<\/h3>\n<p>Next, we implement the Insertion Sort algorithm. The main idea is to compare the current element with the previous elements and insert it in the appropriate position. We will use nested loops to implement this.<\/p>\n<pre><code>public static void insertionSort(int[] arr) {\n    int n = arr.length;\n\n    for (int i = 1; i &lt; n; i++) {\n        int key = arr[i]; \/\/ The element to compare\n        int j = i - 1;\n\n        \/\/ Move elements that are greater than key one position ahead\n        while (j &gt;= 0 &amp;&amp; arr[j] &gt; key) {\n            arr[j + 1] = arr[j];\n            j--;\n        }\n        \/\/ Insert key at the appropriate position\n        arr[j + 1] = key;\n    }\n}<\/code><\/pre>\n<h3>3. Print the Array<\/h3>\n<p>To print the sorted array, we will write a simple output function.<\/p>\n<pre><code>public static void printArray(int[] arr) {\n    for (int i = 0; i &lt; arr.length; i++) {\n        System.out.print(arr[i] + \" \");\n    }\n    System.out.println();\n}<\/code><\/pre>\n<h3>4. Integrate the Whole Program<\/h3>\n<p>Finally, we will combine all the above functionalities into the main method to create the complete program.<\/p>\n<pre><code>public class InsertionSort {\n    public static void main(String[] args) {\n        Scanner scanner = new Scanner(System.in);\n        int n = scanner.nextInt();\n        int[] arr = new int[n];\n\n        for (int i = 0; i &lt; n; i++) {\n            arr[i] = scanner.nextInt();\n        }\n\n        insertionSort(arr);\n        printArray(arr);\n    }\n\n    public static void insertionSort(int[] arr) {\n        int n = arr.length;\n        for (int i = 1; i &lt; n; i++) {\n            int key = arr[i];\n            int j = i - 1;\n            while (j &gt;= 0 &amp;&amp; arr[j] &gt; key) {\n                arr[j + 1] = arr[j];\n                j--;\n            }\n            arr[j + 1] = key;\n        }\n    }\n\n    public static void printArray(int[] arr) {\n        for (int i = 0; i &lt; arr.length; i++) {\n            System.out.print(arr[i] + \" \");\n        }\n        System.out.println();\n    }\n}<\/code><\/pre>\n<h2>Conclusion<\/h2>\n<p>In this lesson, we learned how to implement the Insertion Sort algorithm using Java. Insertion Sort helps to understand the basics of algorithms and can greatly contribute to improving skills. As this is a topic that frequently appears in algorithm problem-solving, it is recommended to practice adequately. Understanding the advantages and disadvantages of Insertion Sort and comparing it with other sorting algorithms is also a good way to learn.<\/p>\n<p>Finally, for algorithm problem-solving and coding test preparation, I recommend solving more diverse problems and studying algorithms systematically. Thank you!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello! In this article, we will discuss one of the algorithms that frequently appear in coding tests using the Java programming language: &#8216;Insertion Sort&#8217;. Insertion Sort is a comparison-based sorting algorithm that is widely used among beginner programmers due to its efficiency and simplicity. In this article, we will explain the theoretical background of Insertion &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33386\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Java 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":[139],"tags":[],"class_list":["post-33386","post","type-post","status-publish","format-standard","hentry","category-java-coding-test"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Java 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\/33386\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java Coding Test Course, Insertion Sort - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! In this article, we will discuss one of the algorithms that frequently appear in coding tests using the Java programming language: &#8216;Insertion Sort&#8217;. Insertion Sort is a comparison-based sorting algorithm that is widely used among beginner programmers due to its efficiency and simplicity. In this article, we will explain the theoretical background of Insertion &hellip; \ub354 \ubcf4\uae30 &quot;Java Coding Test Course, Insertion Sort&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33386\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:16:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:38:55+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=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/33386\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33386\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Java Coding Test Course, Insertion Sort\",\"datePublished\":\"2024-11-01T09:16:03+00:00\",\"dateModified\":\"2024-11-01T11:38:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33386\/\"},\"wordCount\":483,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Java Coding Test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33386\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33386\/\",\"name\":\"Java Coding Test Course, Insertion Sort - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:16:03+00:00\",\"dateModified\":\"2024-11-01T11:38:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33386\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33386\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33386\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java 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":"Java 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\/33386\/","og_locale":"ko_KR","og_type":"article","og_title":"Java Coding Test Course, Insertion Sort - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! In this article, we will discuss one of the algorithms that frequently appear in coding tests using the Java programming language: &#8216;Insertion Sort&#8217;. Insertion Sort is a comparison-based sorting algorithm that is widely used among beginner programmers due to its efficiency and simplicity. In this article, we will explain the theoretical background of Insertion &hellip; \ub354 \ubcf4\uae30 \"Java Coding Test Course, Insertion Sort\"","og_url":"https:\/\/atmokpo.com\/w\/33386\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:16:03+00:00","article_modified_time":"2024-11-01T11:38:55+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":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/33386\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33386\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Java Coding Test Course, Insertion Sort","datePublished":"2024-11-01T09:16:03+00:00","dateModified":"2024-11-01T11:38:55+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33386\/"},"wordCount":483,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Java Coding Test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33386\/","url":"https:\/\/atmokpo.com\/w\/33386\/","name":"Java Coding Test Course, Insertion Sort - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:16:03+00:00","dateModified":"2024-11-01T11:38:55+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33386\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33386\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33386\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Java 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\/33386","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=33386"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33386\/revisions"}],"predecessor-version":[{"id":33387,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33386\/revisions\/33387"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}