Untitled
unknown
plain_text
2 years ago
3.3 kB
10
Indexable
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
void MergeSortedIntervals(vector<int>& v, int s, int m, int e);
void MergeSort(vector<int>& v, int s, int e);
int main()
{
int M = 10;
std::ifstream fin("Tape_in.txt");
int number;
int temp_file = 0;
if (fin && !fin.eof())
{
while (!fin.eof())
{
vector<int> v_in_M_elems;
cout << "NEW PART" << endl;
int i;
for ( i = 0; !fin.eof() && i < M; i++)
{
fin >> number;
v_in_M_elems.push_back(number);
std::cout << number << endl;
}
MergeSort(v_in_M_elems, 0, i - 1);
cout << "\n\n\SORTED:" << endl;
std::ofstream fout("Tape_temp"+to_string(temp_file)+".txt");
for (auto it : v_in_M_elems)
{
cout << it << endl;
fout << it <<"\n";
}
fout.close();
temp_file++;
cout << "\n\n\n" << endl;;
}
fin.close();
}
cout << "Merge" << endl;
std::ifstream fin0("Tape_temp0.txt");
std::ifstream fin1("Tape_temp1.txt");
std::ofstream fout("Tape_out.txt");
int num0,num1;
if (fin0 && !fin0.eof())
{
if (fin1 && !fin1.eof())
{
fin0 >> num0;
fin1 >> num1;
while (!fin0.eof() && !fin1.eof())
{
if (num0 <= num1)
{
cout << num0 << " num0 " << num0 <<":" <<num1 << endl;
fout << num0 << "\n";
fin0 >> num0;
}
else
{
cout << num1 << " num1 " << num0 << ":" << num1 << endl;
fout << num1 << "\n";
fin1 >> num1;
}
if (fin0.eof() && !fin1.eof())
{
while (!fin1.eof())
{
cout << num1 << " add " << num1 << endl;
fout << num1 << "\n";
fin1 >> num1;
}
}
if (!fin0.eof() && fin1.eof())
{
while (!fin0.eof())
{
cout << num0 << " add " << num0 << endl;
fout << num0 << "\n";
fin0 >> num0;
}
}
}
fout.close();
}
}
fin0.close();
fin1.close();
return 0;
}
void MergeSortedIntervals(vector<int>& v, int s, int m, int e)
{
vector<int> temp;
int i, j;
i = s;
j = m + 1;
while (i <= m && j <= e) {
if (v[i] <= v[j]) {
temp.push_back(v[i]);
++i;
}
else {
temp.push_back(v[j]);
++j;
}
}
while (i <= m) {
temp.push_back(v[i]);
++i;
}
while (j <= e) {
temp.push_back(v[j]);
++j;
}
for (int i = s; i <= e; ++i)
v[i] = temp[i - s];
}
void MergeSort(vector<int>& v, int s, int e)
{
if (s < e) {
int m = (s + e) / 2;
MergeSort(v, s, m);
MergeSort(v, m + 1, e);
MergeSortedIntervals(v, s, m, e);
}
}
int move_left(int offset)
{
return offset++;
}
int move_right(int offset)
{
return offset++;
}
int get_daya(ifstream file, string temp_in, int offset)
{
int i = 0;
for (file >> temp_in; !file.eof() && i != offset; file >> temp_in)
{
i++;
}
cout << temp_in << endl;
return 0;
}
int write_data(ifstream file, string temp_in)
{
/*file.open("text.txt", ofstream::binary | ofstream::out | ofstream::in);
file.seekp(1);
file.write("zxc", 3);
*/
return 0;
}Editor is loading...