Untitled
unknown
plain_text
2 years ago
3.3 kB
5
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...