diff --git a/quickSort.cpp b/quickSort.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6b8c5f098163ac37828ea883c9c49ddf7d57b4cb
--- /dev/null
+++ b/quickSort.cpp
@@ -0,0 +1,48 @@
+#include<bits/stdc++.h>
+using namespace std;
+int partition(int arr[],int s,int e){
+    int pivot=arr[s];
+    int cnt=0;
+    for(int i=s+1;i<=e;i++){
+        if(arr[i]<=pivot){
+            cnt++;
+        }
+    }
+    //place pivot at right position 
+    int pivotIndex=s+cnt;
+    swap(arr[pivotIndex],arr[s]);
+    //left and right 
+    int i=s,j=e;
+    while(i<pivotIndex && j>pivotIndex){
+        while(arr[i]<pivot){
+            i++;
+        }
+        while(arr[j]>pivot){
+            j--;
+        }
+        if(i<pivotIndex && j>pivotIndex){
+            swap(arr[i++],arr[j--]);
+        }
+    }
+    return pivotIndex;
+}
+void quickSort(int arr[],int s,int e){
+    //base case
+    if(s>=e)
+    return ;
+    //partition
+    int p=partition(arr,s,e);
+    //left side sort
+    quickSort(arr,s,p-1);
+    //right side sort
+    quickSort(arr,p+1,e); 
+}
+int main(){
+    int arr[5]={2,4,1,6,9};
+    int n=5;
+    quickSort(arr,0,n-1);
+    for(int i=0;i<n;i++){
+        cout<<arr[i]<<" ";
+    }cout<<endl;
+    return 0;
+}