Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I need help debugging my sorting algorithm program. /* / Jose Luis Patino / Algo

ID: 3819977 • Letter: I

Question

I need help debugging my sorting algorithm program.

/*
/ Jose Luis Patino
/ Algorithms Q2 Project
/ V3 - Vectors
/   
/ debugging
/ linking rest of data
*/
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

class Data
{
friend class DataSort;
  
public:
Data(string file);
Data(Data d1, Data d2);
void printData();

private:
vector<int> id;
vector<int> amount;
vector<string> fName;
vector<string> lName;
  
  
};

class DataSort
{
public:
DataSort(Data d1, Data d2);
void printData();
void sortData();
void partitionSort(int p);
void swap(int num1, int num2);

private:
vector<int> id;
vector<int> amount;
vector<string> fName;
vector<string> lName;
  
  
};

int main()
{
Data BranchA("File1.txt"), BranchB("File2.txt");
BranchA.printData();
cout << ' ';
BranchB.printData();
  
//debug
cout << " BRANCH AB DATA: " << endl;
DataSort BranchAB(BranchA, BranchB);
  
BranchAB.printData();
  
BranchAB.sortData();
cout << " Sorted Data only id: " << endl;
BranchAB.printData();
  
}   

Data::Data(string file)
{
int index = 0;

ifstream input;
input.open(file.c_str());
do
{
int temp;
input >> temp;
id.push_back(temp);

string temp1;
input >> temp1;
fName.push_back(temp1);
  
string temp2;
input >> temp2;
lName.push_back(temp2);
  
int temp3;
input >> temp3;
amount.push_back(temp3);
  
/*
cout << "DEBUG: LOOP " << index << " Vector Values: " << endl;
cout << id[index] << " " << fName[index] << " "
<< lName[index] << " " << amount[index] << endl;
*/
index++;
}

while(!input.eof());
}

//will store the sorted records
DataSort::DataSort(Data d1, Data d2)
{
for(int index = 0; index < d1.id.size(); index++)
{
id.push_back(d1.id[index]);
fName.push_back(d1.fName[index]);
lName.push_back(d1.lName[index]);
amount.push_back(d1.amount[index]);
}
  
for(int index = 0; index < d2.id.size(); index++)
{
id.push_back(d2.id[index]);
fName.push_back(d2.fName[index]);
lName.push_back(d2.lName[index]);
amount.push_back(d2.amount[index]);
}
}

void Data::printData()
{
for(int index = 0; index < id.size(); index++)
{
cout << id[index] << " ";
cout << fName[index] << " ";
cout << lName[index] << " ";
cout << amount[index] << endl;
}
}

void DataSort::printData()
{
for(int index = 0; index < id.size(); index++)
{
cout << id[index] << " ";
cout << fName[index] << " ";
cout << lName[index] << " ";
cout << amount[index] << endl;
}
}

void DataSort::sortData()
{
int i = 0;
int pivot = id[i];
int h = i;
  
  
for(int index = 0; index < id.size(); index++)
{   
if(pivot > id[index])
{
h += 1;
swap(h, index);
swap(i, h);
i++;
}   
}
  
partitionSort(i);
}

void DataSort::partitionSort(int p)
{
int i = 0;
int h = i;
int pivot1 = id[i];
  
for(int index = 0; index < p; index++)
{
if(pivot1 > id[index])
{
h += 1;
swap(h, index);
swap(i, h);
i++;
}
}
  
int j = (p+1);
int k = j;
int pivot2 = id[j];
  
for(int index = 0; index < id.size(); index++)
{
if(pivot2 > id[index])
{
k += 1;
swap(j, index);
swap(k, j);
j++;
}
}
}

void DataSort::swap(int num1, int num2)
{
int temp = id[num1];
id[num1] = id[num2];
id[num2] = temp;
}

Explanation / Answer

The Code is correct !

#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
class Data
{
friend class DataSort;
  
public:
Data(string file);
Data(Data d1, Data d2);
void printData();
private:
vector<int> id;
vector<int> amount;
vector<string> fName;
vector<string> lName;
  
  
};
class DataSort
{
public:
DataSort(Data d1, Data d2);
void printData();
void sortData();
void partitionSort(int p);
void swap(int num1, int num2);
private:
vector<int> id;
vector<int> amount;
vector<string> fName;
vector<string> lName;
  
  
};
int main()
{
Data BranchA("File1.txt"), BranchB("File2.txt");
BranchA.printData();
cout << ' ';
BranchB.printData();
  
cout << " BRANCH AB DATA: " << endl;
DataSort BranchAB(BranchA, BranchB);
  
BranchAB.printData();
  
BranchAB.sortData();
cout << " Sorted Data only id: " << endl;
BranchAB.printData();
  
}   
Data::Data(string file)
{
int index = 0;
ifstream input;
input.open(file.c_str());
do
{
int temp;
input >> temp;
id.push_back(temp);
string temp1;
input >> temp1;
fName.push_back(temp1);
  
string temp2;
input >> temp2;
lName.push_back(temp2);
  
int temp3;
input >> temp3;
amount.push_back(temp3);
index++;
}
while(!input.eof());
}

DataSort::DataSort(Data d1, Data d2)
{
for(int index = 0; index < d1.id.size(); index++)
{
id.push_back(d1.id[index]);
fName.push_back(d1.fName[index]);
lName.push_back(d1.lName[index]);
amount.push_back(d1.amount[index]);
}
  
for(int index = 0; index < d2.id.size(); index++)
{
id.push_back(d2.id[index]);
fName.push_back(d2.fName[index]);
lName.push_back(d2.lName[index]);
amount.push_back(d2.amount[index]);
}
}
void Data::printData()
{
for(int index = 0; index < id.size(); index++)
{
cout << id[index] << " ";
cout << fName[index] << " ";
cout << lName[index] << " ";
cout << amount[index] << endl;
}
}
void DataSort::printData()
{
for(int index = 0; index < id.size(); index++)
{
cout << id[index] << " ";
cout << fName[index] << " ";
cout << lName[index] << " ";
cout << amount[index] << endl;
}
}
void DataSort::sortData()
{
int i = 0;
int pivot = id[i];
int h = i;
  
  
for(int index = 0; index < id.size(); index++)
{   
if(pivot > id[index])
{
h += 1;
swap(h, index);
swap(i, h);
i++;
}   
}
  
partitionSort(i);
}
void DataSort::partitionSort(int p)
{
int i = 0;
int h = i;
int pivot1 = id[i];
  
for(int index = 0; index < p; index++)
{
if(pivot1 > id[index])
{
h += 1;
swap(h, index);
swap(i, h);
i++;
}
}
  
int j = (p+1);
int k = j;
int pivot2 = id[j];
  
for(int index = 0; index < id.size(); index++)
{
if(pivot2 > id[index])
{
k += 1;
swap(j, index);
swap(k, j);
j++;
}
}
}
void DataSort::swap(int num1, int num2)
{
int temp = id[num1];
id[num1] = id[num2];
id[num2] = temp;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote