Quicksort Program
Quicksort Program
h>
#include <chrono>
#include <fstream>
#include <cstdlib>
#include <ctime>
return temp;
temp = genRandomInt(0,100000);
outputFile.close();
vector<int>v;
ifstream inputFile(filename);
int num;
v.push_back(num);
Rachit Thakur
22001001084
}
inputFile.close();
return v;
int pivot,mid,pivotI;
if(ch==1){
pivot = arr[low];
pivotI =low;
else if(ch==2){
pivot = arr[mid];
pivotI = mid;
else if(ch==3){
pivot = arr[high];
pivotI = high;
else {
pivotI = genRandomInt(low,high);
pivot = arr[pivotI];
if(arr[i]<pivot){
cnt++;
}
Rachit Thakur
22001001084
}
swap(arr[pivotI],arr[Cpivot_index]);
{ while(arr[i]<pivot){
i++;
while(arr[j]>=pivot){
j--;
{ swap(arr[i++],arr[j--]);
return Cpivot_index;
return ;
1,ch);
Rachit Thakur
22001001084
int measureTime(vector<int>&arr1,int ch,int size)
{ string a;
auto start =
high_resolution_clock::now(); if(ch==1){
quickSort(arr1,0,arr1.size()-1,ch);
a = "First Element";
quickSort(arr1,0,arr1.size()-1,ch);
a = "Middle Element";
quickSort(arr1,0,arr1.size()-1,ch);
rra="Last Element";
else {
quickSort(arr1,0,arr1.size()-1,ch);
a = "Random Element";
return ans;
// This funtion finds the time generated to sort an arr of n size for all the pivots
tGenerator(filename,size);
v = readVectorFromFile(filename);
Rachit Thakur
22001001084
int t1=measureTime(v,1,size);
v = readVectorFromFile(filename);
int t2 =measureTime(v,2,size);
v = readVectorFromFile(filename);
int t3 = measureTime(v,3,size);
v = readVectorFromFile(filename);
int t4=measureTime(v,4,size);
tStamps.push_back(t1);tStamps.push_back(t2);
tStamps.push_back(t3);tStamps.push_back(t4);
int main()
srand(time(0));
vector<int>TempS;
int i=0;
while(i<5){
vector<int> v1,v2,v3,v4,v5,v6;
writeReadMeasure(size,v1,TempS,"testcases1.txt");
size = 100;
writeReadMeasure(size,v2,TempS,"testcases2.txt");
size = 500;
writeReadMeasure(size,v3,TempS,"testcases3.txt");
size = 1000;
writeReadMeasure(size,v4,TempS,"testcases4.txt");
size = 5000;
Rachit Thakur
22001001084
writeReadMeasure(size,v5,TempS,"testcases5.txt");
size = 10000;
writeReadMeasure(size,v6,TempS,"testcases6.txt"); i+
+;
vector<int>avgEntries;int temp=0,k=0;
for(int i=0;i<24;i++){
k=i;
for(int j=0;j<5;j++){
temp+=TempS[k];
k+=24;
avgEntries.push_back(temp/5);
temp=0;
vector<vector<int>>avgM(6,vector<int>(4,0));
k=0;
for(int i=0;i<6;i++){
for(int j=0;j<4;j++){
avgM[i][j]=avgEntries[k++];
for(int i=0;i<6;i++){
for(int j=0;j<4;j++){
cout<<avgM[i][j];
if(i==1 || i==2){
int t = 8;
Rachit Thakur
22001001084
while(t--){
cout<<" ";
else if(i==0){
int t = 9;
while(t--){
cout<<" ";
else if(i==3){
int t = 7;
while(t--){
cout<<" ";
else{
int t = 6;
while(t--){
cout<<" ";
cout<<endl;
Rachit Thakur
22001001084
Rachit Thakur
22001001084