

{"id":97705,"date":"2021-06-29T09:00:39","date_gmt":"2021-06-29T03:30:39","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=97705"},"modified":"2021-06-23T14:51:16","modified_gmt":"2021-06-23T09:21:16","slug":"quicksort","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/quicksort\/","title":{"rendered":"Quicksort in Data Structure"},"content":{"rendered":"<p>Suppose you ran out of groceries. You run to a grocery store with a list of items with their priority numbers written alongside.<\/p>\n<p>For a small list, you can just see and find out the order but for a list of more than 100 items, you need to sort the list according to priority. The fastest way to do that is to select any item in the list and arrange the remaining items above or below it by comparing their priorities.<\/p>\n<p>This is how quicksort works. Quicksort is the fastest sorting algorithm, based on the divide and conquer technique.<\/p>\n<h3>Quicksort in Data Structure<\/h3>\n<p>Just like merge sort, quick sort is also based on the divide and conquer technique. The dataset is divided into sub-datasets and items are arranged around a pivot element. There are many ways a pivot element is selected:<\/p>\n<ul>\n<li>By Choosing the first element as the pivot element<\/li>\n<li>Or By Choosing the last element as the pivot element<\/li>\n<li>Or Choose a random element as the pivot element<\/li>\n<li>Choose the median as the pivot element<\/li>\n<\/ul>\n<h4>Quick Sort Procedure<\/h4>\n<ul>\n<li>Choose a pivot element. Arrange the elements smaller than the pivot before it and elements larger than the pivot after it.<\/li>\n<li>Repeat this process recursively, every time choosing pivot from each sub-array<\/li>\n<li>Combine the final sorted subarrays.<\/li>\n<\/ul>\n<h3>Quick Sort Algorithm<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">QUICKSORT (array A, int x, int y)   \r\n Step 1:  if (y &gt; x)   then   \r\n              i \u2190 a random index from [x,y]   \r\n Step 2: swap A [i] with A[x]   \r\n Step 3: j \u2190 COMBINE (A, x, y)   \r\n Step 4: QUICKSORT (A, x, j - 1)  \r\n              QUICKSORT (A, j + 1, y)  \r\nCOMBINE (array Ar, int m, int n)   \r\n Step 5: x \u2190 Ar[m]   \r\n             o \u2190 m   \r\n Step 6: repeat for p \u2190 m + 1 to n  \r\n              do if (Ar[p] &lt; x)   \r\n                    then o \u2190 o + 1   \r\n               swap Ar[o] with Ar[p]  \r\n               swap Ar[m] with Ar[o]   \r\n             [end of for]\r\n  return o<\/pre>\n<h3>Quicksort Pseudocode<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">function combineFunc(low, high, pivot)\r\n   lowPointer = low\r\n   highPointer = high - 1\r\n\r\n   while True do\r\n      while A[++lowPointer] &lt; pivot do\r\n                    \r\n      end while\r\n    \r\n      while highPointer &gt; 0 &amp;&amp; A[--highPointer] &gt; pivot do\r\n                 \r\n      end while\r\n    \r\n      if lowPointer &gt;= highPointer\r\n         break\r\n      else                \r\n         swap lowPointer,highPointer\r\n      end if\r\n    \r\n   end while \r\n  \r\n   swap lowPointer,high\r\n   return lowPointer\r\n  \r\nend function<\/pre>\n<h3>Working of quicksort<\/h3>\n<p>Let\u2019s sort the characters in the word \u201cDATAFLAIR\u201d by the bubble sort technique.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quicksort-Example.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97768\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quicksort-Example.png\" alt=\"Quicksort Example\" width=\"402\" height=\"42\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quicksort-Example.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quicksort-Example-320x33.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Let us select the middle element as the pivot element every time.<\/p>\n<p>Iteration 1:<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quicksort_Iteration-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97769\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quicksort_Iteration-1.png\" alt=\"Quicksort Iteration 1\" width=\"402\" height=\"42\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quicksort_Iteration-1.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quicksort_Iteration-1-320x33.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Iteration 2: Swap pivot with the last element<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quicksort_Iteration-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97770\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quicksort_Iteration-2.png\" alt=\"Quicksort Iteration 2\" width=\"402\" height=\"42\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quicksort_Iteration-2.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quicksort_Iteration-2-320x33.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Iteration 3:<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97771\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.1.png\" alt=\"Iteration 3.1\" width=\"402\" height=\"73\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.1.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.1-320x58.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97772\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.2.png\" alt=\"Iteration 3.2\" width=\"402\" height=\"72\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.2.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.2-320x57.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97773\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.3.png\" alt=\"Iteration 3.3\" width=\"402\" height=\"136\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.3.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.3-320x108.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97774\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.4.png\" alt=\"Iteration 3.4\" width=\"402\" height=\"72\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.4.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.4-320x57.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97775\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.5.png\" alt=\"Iteration 3.5\" width=\"402\" height=\"134\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.5.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_3.5-320x107.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Iteration 4<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_4.1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97776\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_4.1.png\" alt=\"Iteration 4.1\" width=\"402\" height=\"72\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_4.1.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_4.1-320x57.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_4.2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97777\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_4.2.png\" alt=\"Iteration 4.2\" width=\"402\" height=\"136\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_4.2.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_4.2-320x108.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_4.3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97778\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_4.3.png\" alt=\"Iteration 4.3\" width=\"402\" height=\"98\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_4.3.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_4.3-320x78.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Iteration 5<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_5.1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97779\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_5.1.png\" alt=\"Iteration 5\" width=\"402\" height=\"98\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_5.1.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_5.1-320x78.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Iteration 6<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97780\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_6.png\" alt=\"Iteration 6\" width=\"402\" height=\"98\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_6.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_6-320x78.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Iteration 7<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97781\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_7.png\" alt=\"Iteration 7\" width=\"402\" height=\"98\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_7.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_7-320x78.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Iteration 8<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97782\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_8.png\" alt=\"Iteration 8\" width=\"402\" height=\"98\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_8.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_8-320x78.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Iteration 9<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_9.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97783\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_9.png\" alt=\"Iteration 9\" width=\"402\" height=\"98\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_9.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_9-320x78.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Iteration 10<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97784\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_10.png\" alt=\"Iteration 10\" width=\"402\" height=\"96\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_10.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_10-320x76.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Iteration 11<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97785\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_11.png\" alt=\"Iteration 11\" width=\"402\" height=\"98\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_11.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_11-320x78.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Iteration 12<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_12.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97786\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_12.png\" alt=\"Iteration 12\" width=\"402\" height=\"98\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_12.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_12-320x78.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Iteration 13<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_13.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-97787\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_13.png\" alt=\"Iteration 13\" width=\"402\" height=\"42\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_13.png 402w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Iteration_13-320x33.png 320w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<h4>Array implementation in C<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#include &lt;stdio.h&gt;\r\n\r\nvoid swap(int *x, int *y) \r\n{\r\n  int temp = *x;\r\n  *x = *y;\r\n  *y = temp;\r\n}\r\n\r\nint partition(int arr[], int low, int high) \r\n{\r\n  int pivot = arr[high];\r\n  int i = (low - 1);\r\n  for (int j = low; j &lt; high; j++) \r\n  {\r\n    if (arr[j] &lt;= pivot) \r\n    {\r\n      i++;\r\n      swap(&amp;arr[i], &amp;arr[j]);\r\n    }\r\n  }\r\n  swap(&amp;arr[i + 1], &amp;arr[high]);\r\n  return (i + 1);\r\n}\r\n\r\nvoid quickSort(int array[], int low, int high) \r\n{\r\n  if (low &lt; high) \r\n  {\r\n    int piv = partition(array, low, high);\r\n    quickSort(array, low, piv - 1);\r\n    quickSort(array, piv + 1, high);\r\n  }\r\n}\r\n\r\nint main() \r\n{\r\n  int dataset[] = {81, 75, 22, 15, 4, 98, 62, 38,49,51};\r\n  \r\n  int size = sizeof(dataset) \/ sizeof(dataset[0]);\r\n  quickSort(dataset, 0, size - 1);\r\n  \r\n  printf(\"Sorted array \\n\");\r\n  for (int i = 0; i &lt; size; ++i)\r\n  {\r\n    printf(\"%d \", dataset[i]);\r\n  }\r\n}\r\n<\/pre>\n<h4>Quick Sort Array implementation in C++<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#include &lt;iostream&gt;\r\nusing namespace std;\r\nvoid swap(int *x, int *y) \r\n{\r\n  int temp = *x;\r\n  *x = *y;\r\n  *y = temp;\r\n}\r\n\r\nint partition(int arr[], int low, int high) \r\n{\r\n  int pivot = arr[high];\r\n  int i = (low - 1);\r\n  for (int j = low; j &lt; high; j++) \r\n  {\r\n    if (arr[j] &lt;= pivot) \r\n    {\r\n      i++;\r\n      swap(&amp;arr[i], &amp;arr[j]);\r\n    }\r\n  }\r\n  swap(&amp;arr[i + 1], &amp;arr[high]);\r\n  return (i + 1);\r\n}\r\n\r\nvoid quickSort(int array[], int low, int high) \r\n{\r\n  if (low &lt; high) \r\n  {\r\n    int piv = partition(array, low, high);\r\n    quickSort(array, low, piv - 1);\r\n    quickSort(array, piv + 1, high);\r\n  }\r\n}\r\n\r\nint main() \r\n{\r\n  int dataset[] = {81, 75, 22, 15, 4, 98, 62, 38,49,51};\r\n  \r\n  int size = sizeof(dataset) \/ sizeof(dataset[0]);\r\n  quickSort(dataset, 0, size - 1);\r\n  \r\n  cout &lt;&lt; \"Sorted array\" ;\r\n  for (int i = 0; i &lt; size; ++i)\r\n  {\r\n    cout &lt;&lt; \" \" &lt;&lt;dataset[i];\r\n  }\r\n}\r\n<\/pre>\n<h3>Array implementation of Quick Sort in Java<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">public class Quicksort \r\n{\r\n  static int partition(int arr[], int low, int high) \r\n  {\r\n    int piv = arr[high];\r\n    int i = (low - 1);\r\n    for (int j = low; j &lt; high; j++) \r\n    {\r\n      if (arr[j] &lt;= piv) \r\n      {\r\n        i++;\r\n        int temp = arr[i];\r\n        arr[i] = arr[j];\r\n        arr[j] = temp;\r\n      }\r\n\r\n    }\r\n    int temp = arr[i + 1];\r\n    arr[i + 1] = arr[high];\r\n    arr[high] = temp;\r\n    return (i + 1);\r\n  }\r\n\r\n  static void quickSort(int arr[], int low, int high) \r\n  {\r\n    if (low &lt; high) \r\n    {\r\n      int piv = partition(arr, low, high);\r\n      quickSort(arr, low, piv - 1);\r\n      quickSort(arr, piv + 1, high);\r\n    }\r\n  }\r\n  public static void main(String args[]) \r\n  {\r\n\r\n    int data[] = { 81, 75, 22, 15, 4, 98, 62, 38,49,51 };\r\n\r\n    int size = data.length;\r\n    Quicksort.quickSort(data, 0, size - 1);\r\n\r\n    System.out.println(\"Sorted Array in Ascending Order: \");\r\n    for(int i=0;i&lt;size;i++)\r\n    System.out.print(data[i]+\" \");\r\n  }\r\n}\r\n<\/pre>\n<h3>Quick Sort Array implementation in Python<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def partition(arr, low, high):\r\n  piv = arr[high]\r\n  i = low - 1\r\n  \r\n  for j in range(low, high):\r\n      \r\n    if arr[j] &lt;= piv:\r\n        \r\n      i = i + 1\r\n      (arr[i], arr[j]) = (arr[j], arr[i])\r\n      \r\n      \r\n  (arr[i + 1], arr[high]) = (arr[high], arr[i + 1])\r\n  return i + 1\r\n\r\ndef quickSort(arr, low, high):\r\n  \r\n  if low &lt; high:\r\n      \r\n    piv = partition(arr, low, high)\r\n    quickSort(arr, low, piv - 1)\r\n    quickSort(arr, piv + 1, high)\r\n\r\n\r\ndata = [81, 75, 22, 15, 4, 98, 62, 38,49,51]\r\nsize = len(data)\r\n\r\nquickSort(data, 0, size - 1)\r\n\r\nprint('Sorted Array:')\r\nprint(data)\r\n<\/pre>\n<h4>Linked list implementation in C++<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#include &lt;cstdio&gt;\r\n#include &lt;iostream&gt;\r\nusing namespace std;\r\n\r\nstruct Node \r\n{\r\n  int data;\r\n  struct Node* next;\r\n};\r\n\r\nvoid push(struct Node** head, int newData)\r\n{\r\n  struct Node* newNode = new Node;\r\n\r\n  newNode-&gt;data = newData;\r\n\r\n  newNode-&gt;next = (*head);\r\n\r\n  (*head) = newNode;\r\n}\r\n\r\nstruct Node* getTail(struct Node* current)\r\n{\r\n  while (current != NULL &amp;&amp; current-&gt;next != NULL)\r\n    current = current-&gt;next;\r\n  return current;\r\n}\r\n\r\nstruct Node* partition(struct Node* head, struct Node* end,struct Node** Head,struct Node** newEnd)\r\n{\r\n  struct Node* pivot = end;\r\n  struct Node *previous = NULL, *current = head, *tail = pivot;\r\n\r\n  while (current != pivot) {\r\n    if (current-&gt;data &lt; pivot-&gt;data) \r\n    {\r\n      if ((*Head) == NULL)\r\n        (*Head) = current;\r\n\r\n      previous = current;\r\n      current = current-&gt;next;\r\n    }\r\n    else \r\n    {\r\n        \r\n      if (previous)\r\n        previous-&gt;next = current-&gt;next;\r\n      struct Node* temp = current-&gt;next;\r\n      current-&gt;next = NULL;\r\n      tail-&gt;next = current;\r\n      tail = current;\r\n      current = temp;\r\n    }\r\n  }\r\n\r\n  if ((*Head) == NULL)\r\n    (*Head) = pivot;\r\n\r\n  (*newEnd) = tail;\r\n\r\n  return pivot;\r\n}\r\n\r\nstruct Node* quickSortRecursive(struct Node* head,struct Node* end)\r\n{\r\n  if (!head || head == end)\r\n    return head;\r\n\r\n  Node *newHead = NULL, *newEnd = NULL;\r\n\r\n  struct Node* pivot = partition(head, end, &amp;newHead, &amp;newEnd);\r\n\r\n  if (newHead != pivot) \r\n  {\r\n    struct Node* tmp = newHead;\r\n    while (tmp-&gt;next != pivot)\r\n      tmp = tmp-&gt;next;\r\n    tmp-&gt;next = NULL;\r\n\r\n    newHead = quickSortRecursive(newHead, tmp);\r\n\r\n    tmp = getTail(newHead);\r\n    tmp-&gt;next = pivot;\r\n  }\r\n\r\n  pivot-&gt;next = quickSortRecursive(pivot-&gt;next, newEnd);\r\n\r\n  return newHead;\r\n}\r\n\r\nvoid quickSort(struct Node** headRef)\r\n{\r\n  (*headRef) = quickSortRecursive(*headRef, getTail(*headRef));\r\n  return;\r\n}\r\n\r\nint main()\r\n{\r\n  struct Node* a = NULL;\r\n  push(&amp;a, 81);\r\n  push(&amp;a, 75);\r\n  push(&amp;a, 22);\r\n  push(&amp;a, 15);\r\n  push(&amp;a, 4);\r\n  push(&amp;a, 98);\r\n  push(&amp;a, 62);\r\n  push(&amp;a, 38);\r\n  push(&amp;a, 49);\r\n  push(&amp;a, 51);\r\n\r\n  quickSort(&amp;a);\r\n\r\n  cout &lt;&lt; \"sorted list: \";\r\n  while (a != NULL) \r\n  {\r\n    cout &lt;&lt;\" \u201d&lt;&lt;a-&gt;data;\r\n    a = a-&gt;next;\r\n  }\r\n\r\n  return 0;\r\n}\r\n<\/pre>\n<h4>Quick Sort Linked List Implementation in Java<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">public class QuickSortLinkedList \r\n{\r\n    static class Node \r\n    {\r\n        int data;\r\n        Node next;\r\n \r\n        Node(int d)\r\n        {\r\n            this.data = d;\r\n            this.next = null;\r\n        }\r\n    }\r\n \r\n    Node head;\r\n \r\n    void addNode(int data)\r\n    {\r\n        if (head == null) {\r\n            head = new Node(data);\r\n            return;\r\n        }\r\n \r\n        Node current = head;\r\n        while (current.next != null)\r\n            current = current.next;\r\n \r\n        Node newNode = new Node(data);\r\n        current.next = newNode;\r\n    }\r\n \r\n    void printList(Node n)\r\n    {\r\n        while (n != null) {\r\n            System.out.print(n.data);\r\n            System.out.print(\" \");\r\n            n = n.next;\r\n        }\r\n    }\r\n \r\n    Node paritionLast(Node start, Node end)\r\n    {\r\n        if (start == end || start == null || end == null)\r\n            return start;\r\n \r\n        Node pivot_prev = start;\r\n        Node current = start;\r\n        int pivot = end.data;\r\n \r\n        while (start != end) \r\n        {\r\n            if (start.data &lt; pivot) \r\n            {\r\n                pivot_prev = current;\r\n                int temp = current.data;\r\n                current.data = start.data;\r\n                start.data = temp;\r\n                current = current.next;\r\n            }\r\n            start = start.next;\r\n        }\r\n \r\n        int temp = current.data;\r\n        current.data = pivot;\r\n        end.data = temp;\r\n \r\n        return pivot_prev;\r\n    }\r\n \r\n    void sort(Node start, Node end)\r\n    {\r\n        if(start == null || start == end|| start == end.next )\r\n            return;\r\n \r\n        Node pivot_prev = paritionLast(start, end);\r\n        sort(start, pivot_prev);\r\n \r\n        if (pivot_prev != null &amp;&amp; pivot_prev == start)\r\n            sort(pivot_prev.next, end);\r\n\r\n        else if (pivot_prev != null\r\n                 &amp;&amp; pivot_prev.next != null)\r\n            sort(pivot_prev.next.next, end);\r\n    }\r\n \r\npublic static void main(String[] args)\r\n    {\r\n        QuickSortLinkedList list\r\n            = new QuickSortLinkedList();\r\n        list.addNode(81);\r\n        list.addNode(75);\r\n        list.addNode(22);\r\n        list.addNode(15);\r\n        list.addNode(4);\r\n        list.addNode(98);\r\n        list.addNode(62);\r\n        list.addNode(38);\r\n        list.addNode(49);\r\n        list.addNode(51);\r\n \r\n        Node n = list.head;\r\n        while (n.next != null)\r\n            n = n.next;\r\n \r\n        list.sort(list.head, n);\r\n \r\n        System.out.println(\"sorted list\");\r\n        list.printList(list.head);\r\n    }\r\n}<\/pre>\n<h4>Linked list implementation in Python<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class Node:\r\n  def __init__(self, val):\r\n    self.data = val\r\n    self.next = None\r\n\r\nclass QuickSortList:\r\n\r\n  def __init__(self):\r\n    self.head=None\r\n\r\n  def addNode(self,data):\r\n    if (self.head == None):\r\n      self.head = Node(data)\r\n      return\r\n\r\n    current = self.head\r\n    while (current.next != None):\r\n      current = current.next\r\n\r\n    newNode = Node(data)\r\n    current.next = newNode\r\n\r\n  def printList(self,n):\r\n    while (n != None):\r\n      print(n.data, end=\" \")\r\n      n = n.next\r\n      \r\n  def paritionLast(self,start, end):\r\n    if (start == end or start == None or end == None):\r\n      return start\r\n\r\n    pivot_prev = start\r\n    current = start\r\n    pivot = end.data\r\n\r\n    while (start != end):\r\n      if (start.data &lt; pivot):\r\n      \r\n        pivot_prev = current\r\n        temp = current.data\r\n        current.data = start.data\r\n        start.data = temp\r\n        current = current.next\r\n      start = start.next\r\n\r\n    temp = current.data\r\n    current.data = pivot\r\n    end.data = temp\r\n\r\n    return pivot_prev\r\n\r\n  def sort(self, start, end):\r\n    if(start == None or start == end or start == end.next):\r\n      return\r\n\r\n    pivot_prev = self.paritionLast(start, end)\r\n    self.sort(start, pivot_prev)\r\n\r\n    if(pivot_prev != None and pivot_prev == start):\r\n      self.sort(pivot_prev.next, end)\r\n\r\n    elif (pivot_prev != None and pivot_prev.next != None):\r\n      self.sort(pivot_prev.next.next, end)\r\n\r\nif __name__ == \"__main__\":\r\n  ll = QuickSortList()\r\n  ll.addNode(81)\r\n  ll.addNode(75)\r\n  ll.addNode(22)\r\n  ll.addNode(15)\r\n  ll.addNode(4)\r\n  ll.addNode(98)\r\n  ll.addNode(62)\r\n  ll.addNode(38)\r\n  ll.addNode(49)\r\n  ll.addNode(51)\r\n\r\n  n = ll.head\r\n  while (n.next != None):\r\n    n = n.next\r\n\r\n  ll.sort(ll.head, n)\r\n\r\n  print(\"sorted list: \");\r\n  ll.printList(ll.head)\r\n<\/pre>\n<h3>Complexity of Quick Sort<\/h3>\n<h4>Best Case Complexity:<\/h4>\n<p>When the pivot element is the middle element or near to the middle element.<\/p>\n<h4>Worst Case Complexity:<\/h4>\n<p>when pivot element is either largest or smallest number.<\/p>\n<h4>Average Case Complexity:<\/h4>\n<p>when the condition of best and worst-case, both don\u2019t occur.<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Scenario<\/b><\/td>\n<td><b>Complexity<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Worst case<\/span><\/td>\n<td><span style=\"font-weight: 400;\">O(n<\/span><span style=\"font-weight: 400;\">2<\/span><span style=\"font-weight: 400;\">)<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Average case<\/span><\/td>\n<td><span style=\"font-weight: 400;\">O(n log n)<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Best case<\/span><\/td>\n<td><span style=\"font-weight: 400;\">O(n log n)<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">space<\/span><\/td>\n<td><span style=\"font-weight: 400;\">O(log n)<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Advantages of Quicksort<\/h3>\n<ul>\n<li>Quicksort does not require any extra memory, unlike merge sort. This makes Quicksort faster since it does not require allocation and deallocation of memory.<\/li>\n<li>Less time and space complexity.<\/li>\n<li>Most implementation is in randomized order and quick sort works better for randomized version.<\/li>\n<\/ul>\n<h3>Disadvantages of Quicksort<\/h3>\n<ul>\n<li>Merge sort can be implemented without extra memory in a linked list. Therefore, merge sort is preferred over quick sort<\/li>\n<li>Quicksort requires random access of elements which is not possible in a linked list. For these reasons, quicksort is not preferable in a linked list.<\/li>\n<\/ul>\n<h3>Applications of Quicksort in Data Structure<\/h3>\n<ul>\n<li>Used for sorting in commercial computing since it is the fastest.<\/li>\n<li>Most algorithms that are efficiently developed, use priority queues. This makes the implementation of quicksort easy.<\/li>\n<li>Quicksort is a cache-friendly algorithm.<\/li>\n<li>It is used in event-driven simulations and to implement primitive type methods<\/li>\n<\/ul>\n<h3>Conclusion<\/h3>\n<p>Quicksort is the fastest sorting algorithm. Based on the Divide and Conquer algorithm technique, quick sort uses priority queues for sorting. Quicksort is also used as a better search technique.<\/p>\n<p>Quicksort, when implemented efficiently can beat most of the sorting algorithms including heap sort and merge sort.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Suppose you ran out of groceries. You run to a grocery store with a list of items with their priority numbers written alongside. For a small list, you can just see and find out&#46;&#46;&#46;<\/p>\n","protected":false},"author":7,"featured_media":97767,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24020],"tags":[24647,24649,24650,24648,24651],"class_list":["post-97705","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-structure-tutorials","tag-quicksort","tag-quicksort-algorithm","tag-quicksort-implementation","tag-quicksort-in-data-structure","tag-time-complexity-of-quicksort"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Quicksort in Data Structure - DataFlair<\/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:\/\/data-flair.training\/blogs\/quicksort\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Quicksort in Data Structure - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Suppose you ran out of groceries. You run to a grocery store with a list of items with their priority numbers written alongside. For a small list, you can just see and find out&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/quicksort\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-29T03:30:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quick-sort-in-DS.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Quicksort in Data Structure - DataFlair","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:\/\/data-flair.training\/blogs\/quicksort\/","og_locale":"en_US","og_type":"article","og_title":"Quicksort in Data Structure - DataFlair","og_description":"Suppose you ran out of groceries. You run to a grocery store with a list of items with their priority numbers written alongside. For a small list, you can just see and find out&#46;&#46;&#46;","og_url":"https:\/\/data-flair.training\/blogs\/quicksort\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2021-06-29T03:30:39+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quick-sort-in-DS.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/quicksort\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/quicksort\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd"},"headline":"Quicksort in Data Structure","datePublished":"2021-06-29T03:30:39+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/quicksort\/"},"wordCount":573,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/quicksort\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quick-sort-in-DS.jpg","keywords":["Quicksort","Quicksort Algorithm","Quicksort Implementation","Quicksort in Data Structure","Time Complexity of Quicksort"],"articleSection":["Data Structure Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/quicksort\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/quicksort\/","url":"https:\/\/data-flair.training\/blogs\/quicksort\/","name":"Quicksort in Data Structure - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/quicksort\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/quicksort\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quick-sort-in-DS.jpg","datePublished":"2021-06-29T03:30:39+00:00","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/quicksort\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/quicksort\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/quicksort\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quick-sort-in-DS.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/06\/Quick-sort-in-DS.jpg","width":1200,"height":628,"caption":"Quick sort in Data Structure"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/quicksort\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Data Structure Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/data-structure-tutorials\/"},{"@type":"ListItem","position":3,"name":"Quicksort in Data Structure"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team specializes in creating clear, actionable content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Backed by industry expertise, we make learning easy and career-oriented for beginners and pros alike.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam3\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/97705","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=97705"}],"version-history":[{"count":4,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/97705\/revisions"}],"predecessor-version":[{"id":97788,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/97705\/revisions\/97788"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/97767"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=97705"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=97705"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=97705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}