{"id":19590,"date":"2024-03-15T19:07:40","date_gmt":"2024-03-15T19:07:40","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/"},"modified":"2024-03-21T16:03:58","modified_gmt":"2024-03-21T16:03:58","slug":"how-to-implement-the-quicksort-algorithm-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/","title":{"rendered":"How to implement the quicksort algorithm in Java?"},"content":{"rendered":"<p>Quick Sort is a commonly used sorting algorithm that works by dividing the unsorted data into two separate parts during each iteration, with one part having all elements smaller than the other. This process is then repeated recursively on each part until the entire dataset is sorted.<\/p>\n<p>Below is an example code of implementing the quicksort algorithm in Java.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">QuickSort<\/span> {\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">(String[] args)<\/span> {\r\n        <span class=\"hljs-type\">int<\/span>[] arr = {<span class=\"hljs-number\">9<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">7<\/span>, <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">8<\/span>, <span class=\"hljs-number\">6<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">4<\/span>};\r\n        quickSort(arr, <span class=\"hljs-number\">0<\/span>, arr.length - <span class=\"hljs-number\">1<\/span>);\r\n        <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-type\">int<\/span> num : arr) {\r\n            System.out.print(num + <span class=\"hljs-string\">\" \"<\/span>);\r\n        }\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">quickSort<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span>[] arr, <span class=\"hljs-type\">int<\/span> low, <span class=\"hljs-type\">int<\/span> high)<\/span> {\r\n        <span class=\"hljs-keyword\">if<\/span> (low &lt; high) {\r\n            <span class=\"hljs-comment\">\/\/ \u5c06\u6570\u7ec4\u5206\u533a\uff0c\u5e76\u83b7\u53d6\u5206\u533a\u70b9\u7684\u7d22\u5f15<\/span>\r\n            <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">pivotIndex<\/span> <span class=\"hljs-operator\">=<\/span> partition(arr, low, high);\r\n            <span class=\"hljs-comment\">\/\/ \u5bf9\u5de6\u4fa7\u5b50\u6570\u7ec4\u8fdb\u884c\u5feb\u901f\u6392\u5e8f<\/span>\r\n            quickSort(arr, low, pivotIndex - <span class=\"hljs-number\">1<\/span>);\r\n            <span class=\"hljs-comment\">\/\/ \u5bf9\u53f3\u4fa7\u5b50\u6570\u7ec4\u8fdb\u884c\u5feb\u901f\u6392\u5e8f<\/span>\r\n            quickSort(arr, pivotIndex + <span class=\"hljs-number\">1<\/span>, high);\r\n        }\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-type\">int<\/span> <span class=\"hljs-title function_\">partition<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span>[] arr, <span class=\"hljs-type\">int<\/span> low, <span class=\"hljs-type\">int<\/span> high)<\/span> {\r\n        <span class=\"hljs-comment\">\/\/ \u5c06\u7b2c\u4e00\u4e2a\u5143\u7d20\u4f5c\u4e3a\u5206\u533a\u70b9<\/span>\r\n        <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">pivot<\/span> <span class=\"hljs-operator\">=<\/span> arr[low];\r\n        <span class=\"hljs-keyword\">while<\/span> (low &lt; high) {\r\n            <span class=\"hljs-comment\">\/\/ \u4ece\u53f3\u5f80\u5de6\u627e\u5230\u7b2c\u4e00\u4e2a\u5c0f\u4e8e\u5206\u533a\u70b9\u7684\u5143\u7d20<\/span>\r\n            <span class=\"hljs-keyword\">while<\/span> (low &lt; high &amp;&amp; arr[high] &gt;= pivot) {\r\n                high--;\r\n            }\r\n            <span class=\"hljs-comment\">\/\/ \u5c06\u8be5\u5143\u7d20\u653e\u5230\u5de6\u4fa7<\/span>\r\n            arr[low] = arr[high];\r\n            <span class=\"hljs-comment\">\/\/ \u4ece\u5de6\u5f80\u53f3\u627e\u5230\u7b2c\u4e00\u4e2a\u5927\u4e8e\u5206\u533a\u70b9\u7684\u5143\u7d20<\/span>\r\n            <span class=\"hljs-keyword\">while<\/span> (low &lt; high &amp;&amp; arr[low] &lt;= pivot) {\r\n                low++;\r\n            }\r\n            <span class=\"hljs-comment\">\/\/ \u5c06\u8be5\u5143\u7d20\u653e\u5230\u53f3\u4fa7<\/span>\r\n            arr[high] = arr[low];\r\n        }\r\n        <span class=\"hljs-comment\">\/\/ \u5c06\u5206\u533a\u70b9\u653e\u5230\u6b63\u786e\u7684\u4f4d\u7f6e\u4e0a<\/span>\r\n        arr[low] = pivot;\r\n        <span class=\"hljs-comment\">\/\/ \u8fd4\u56de\u5206\u533a\u70b9\u7684\u7d22\u5f15<\/span>\r\n        <span class=\"hljs-keyword\">return<\/span> low;\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the above code, the quickSort method implements the recursive calls of the quicksort algorithm, while the partition method is used to partition the array and return the index of the partition point. Each recursive call selects a partition point to divide the array into two subarrays, then performs a quicksort on each subarray. Finally, the partition point is placed in its correct position to complete a pass of sorting. By recursively calling the quicksort algorithm, the entire array can eventually be sorted.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quick Sort is a commonly used sorting algorithm that works by dividing the unsorted data into two separate parts during each iteration, with one part having all elements smaller than the other. This process is then repeated recursively on each part until the entire dataset is sorted. Below is an example code of implementing the [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-19590","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to implement the quicksort algorithm in Java? - Blog - Silicon Cloud<\/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:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to implement the quicksort algorithm in Java?\" \/>\n<meta property=\"og:description\" content=\"Quick Sort is a commonly used sorting algorithm that works by dividing the unsorted data into two separate parts during each iteration, with one part having all elements smaller than the other. This process is then repeated recursively on each part until the entire dataset is sorted. Below is an example code of implementing the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T19:07:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T16:03:58+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jackson Davis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"How to implement the quicksort algorithm in Java?\",\"datePublished\":\"2024-03-15T19:07:40+00:00\",\"dateModified\":\"2024-03-21T16:03:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/\"},\"wordCount\":150,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/\",\"name\":\"How to implement the quicksort algorithm in Java? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T19:07:40+00:00\",\"dateModified\":\"2024-03-21T16:03:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to implement the quicksort algorithm in Java?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to implement the quicksort algorithm in Java? - Blog - Silicon Cloud","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:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/","og_locale":"en_US","og_type":"article","og_title":"How to implement the quicksort algorithm in Java?","og_description":"Quick Sort is a commonly used sorting algorithm that works by dividing the unsorted data into two separate parts during each iteration, with one part having all elements smaller than the other. This process is then repeated recursively on each part until the entire dataset is sorted. Below is an example code of implementing the [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T19:07:40+00:00","article_modified_time":"2024-03-21T16:03:58+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"How to implement the quicksort algorithm in Java?","datePublished":"2024-03-15T19:07:40+00:00","dateModified":"2024-03-21T16:03:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/"},"wordCount":150,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/","name":"How to implement the quicksort algorithm in Java? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T19:07:40+00:00","dateModified":"2024-03-21T16:03:58+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-the-quicksort-algorithm-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to implement the quicksort algorithm in Java?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19590","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=19590"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19590\/revisions"}],"predecessor-version":[{"id":53340,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19590\/revisions\/53340"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=19590"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=19590"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=19590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}