You are on page 1of 4

Ques.

Implement Quick Sort Algorithm on any input


size and count the number of comparisons involved.
#include<iostream>
using namespace std;

int comp = 0;

void swap(int arr[], int i, int j){


int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}

int partition(int arr[], int l, int r){

int x = arr[r];
int i =l-1;

for(int j=l; j<r; j++){


if(arr[j]<x){
i++;
comp++;
swap(arr,i,j);
}
}
swap(arr, i+1, r);
return i+1;
}

void quickSort(int arr[], int l, int r){

if(l<r){
int q = partition(arr, l, r);
quickSort(arr, l, q-1);
quickSort(arr, q+1, r);
}
}

void printArr(int arr[], int n){


for(int i=0; i<n; i++){
cout<<arr[i]<<" ";
}
cout<<endl;
}

int main(){

int arr[] = {7,10,9,6,12,14};


int size = sizeof(arr)/sizeof(arr[0]);
quickSort(arr, 0, size-1);
printArr(arr, size);
cout<<"No. of comparisons: "<<comp;
return 0;
}

You might also like