{"id":10007,"date":"2024-03-14T10:26:38","date_gmt":"2024-03-14T10:26:38","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/"},"modified":"2025-08-03T18:03:46","modified_gmt":"2025-08-03T18:03:46","slug":"how-to-implement-quicksort-algorithm-in-c-language","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/","title":{"rendered":"Quicksort in C: Implementation Guide"},"content":{"rendered":"<p>The quicksort algorithm is a commonly used sorting algorithm that works by partitioning the data into two separate parts during each iteration of the sorting process, with one part containing all elements smaller than the other part. These two parts are then sorted individually, recursively repeating the process until the entire sequence is ordered.<\/p>\n<p>Here is an example code in C language for implementing the quicksort algorithm.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;stdio.h&gt;<\/span><\/span>\r\n\r\n<span class=\"hljs-type\">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> left, <span class=\"hljs-type\">int<\/span> right)<\/span> {\r\n    <span class=\"hljs-type\">int<\/span> i = left, j = right;\r\n    <span class=\"hljs-type\">int<\/span> pivot = arr[(left + right) \/ <span class=\"hljs-number\">2<\/span>];\r\n\r\n    <span class=\"hljs-keyword\">while<\/span> (i &lt;= j) {\r\n        <span class=\"hljs-keyword\">while<\/span> (arr[i] &lt; pivot) {\r\n            i++;\r\n        }\r\n        <span class=\"hljs-keyword\">while<\/span> (arr[j] &gt; pivot) {\r\n            j--;\r\n        }\r\n        <span class=\"hljs-keyword\">if<\/span> (i &lt;= j) {\r\n            <span class=\"hljs-type\">int<\/span> temp = arr[i];\r\n            arr[i] = arr[j];\r\n            arr[j] = temp;\r\n            i++;\r\n            j--;\r\n        }\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">if<\/span> (left &lt; j) {\r\n        quickSort(arr, left, j);\r\n    }\r\n    <span class=\"hljs-keyword\">if<\/span> (i &lt; right) {\r\n        quickSort(arr, i, right);\r\n    }\r\n}\r\n\r\n<span class=\"hljs-type\">int<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">()<\/span> {\r\n    <span class=\"hljs-type\">int<\/span> arr[] = {<span class=\"hljs-number\">12<\/span>, <span class=\"hljs-number\">34<\/span>, <span class=\"hljs-number\">23<\/span>, <span class=\"hljs-number\">45<\/span>, <span class=\"hljs-number\">56<\/span>, <span class=\"hljs-number\">67<\/span>, <span class=\"hljs-number\">78<\/span>, <span class=\"hljs-number\">89<\/span>, <span class=\"hljs-number\">90<\/span>, <span class=\"hljs-number\">11<\/span>};\r\n    <span class=\"hljs-type\">int<\/span> n = <span class=\"hljs-keyword\">sizeof<\/span>(arr) \/ <span class=\"hljs-keyword\">sizeof<\/span>(arr[<span class=\"hljs-number\">0<\/span>]);\r\n\r\n    quickSort(arr, <span class=\"hljs-number\">0<\/span>, n - <span class=\"hljs-number\">1<\/span>);\r\n\r\n    <span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">\"Sorted array: \"<\/span>);\r\n    <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-type\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; n; i++) {\r\n        <span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">\"%d \"<\/span>, arr[i]);\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\r\n}\r\n<\/code><\/pre>\n<p>In the code above, the quickSort function implements the logic of the quicksort algorithm, where &#8216;left&#8217; represents the starting index of the array and &#8216;right&#8217; represents the ending index. In the main function, we define an array &#8216;arr&#8217; and call the quickSort function to sort it, and finally print the sorted result.<\/p>\n<p>Note: The example code above is just one way to implement it, in actual applications, optimization and improvement may be needed based on specific circumstances.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The quicksort algorithm is a commonly used sorting algorithm that works by partitioning the data into two separate parts during each iteration of the sorting process, with one part containing all elements smaller than the other part. These two parts are then sorted individually, recursively repeating the process until the entire sequence is ordered. Here [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[3190,331,381,3188,6258],"class_list":["post-10007","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-algorithm-implementation","tag-c-language","tag-c-programming","tag-quicksort","tag-sorting-algorithms"],"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>Quicksort in C: Implementation Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn quicksort algorithm implementation in C with step-by-step code explanation and partitioning logic.\" \/>\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-quicksort-algorithm-in-c-language\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Quicksort in C: Implementation Guide\" \/>\n<meta property=\"og:description\" content=\"Learn quicksort algorithm implementation in C with step-by-step code explanation and partitioning logic.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/\" \/>\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-14T10:26:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-03T18:03:46+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\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=\"Olivia Parker\" \/>\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-quicksort-algorithm-in-c-language\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"Quicksort in C: Implementation Guide\",\"datePublished\":\"2024-03-14T10:26:38+00:00\",\"dateModified\":\"2025-08-03T18:03:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/\"},\"wordCount\":149,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"algorithm implementation\",\"C Language\",\"C++ Programming\",\"quicksort\",\"Sorting Algorithms\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/\",\"name\":\"Quicksort in C: Implementation Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T10:26:38+00:00\",\"dateModified\":\"2025-08-03T18:03:46+00:00\",\"description\":\"Learn quicksort algorithm implementation in C with step-by-step code explanation and partitioning logic.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Quicksort in C: Implementation Guide\"}]},{\"@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\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Quicksort in C: Implementation Guide - Blog - Silicon Cloud","description":"Learn quicksort algorithm implementation in C with step-by-step code explanation and partitioning logic.","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-quicksort-algorithm-in-c-language\/","og_locale":"en_US","og_type":"article","og_title":"Quicksort in C: Implementation Guide","og_description":"Learn quicksort algorithm implementation in C with step-by-step code explanation and partitioning logic.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T10:26:38+00:00","article_modified_time":"2025-08-03T18:03:46+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"Quicksort in C: Implementation Guide","datePublished":"2024-03-14T10:26:38+00:00","dateModified":"2025-08-03T18:03:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/"},"wordCount":149,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["algorithm implementation","C Language","C++ Programming","quicksort","Sorting Algorithms"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/","name":"Quicksort in C: Implementation Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T10:26:38+00:00","dateModified":"2025-08-03T18:03:46+00:00","description":"Learn quicksort algorithm implementation in C with step-by-step code explanation and partitioning logic.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-quicksort-algorithm-in-c-language\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Quicksort in C: Implementation Guide"}]},{"@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\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/10007","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\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=10007"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/10007\/revisions"}],"predecessor-version":[{"id":153750,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/10007\/revisions\/153750"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=10007"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=10007"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=10007"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}