Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include <time.h>
- #include <chrono>
- #include <fstream>
- #include <sstream>
- #include <algorithm>
- #include <string>
- using namespace std;
- void swap(int* xp, int* yp)
- {
- int temp = *xp;
- *xp = *yp;
- *yp = temp;
- }
- void choicesSort(int* arr, int n)
- {
- int i, j, min_idx;
- for (i = 0; i < n - 1; i++)
- {
- min_idx = i;
- for (j = i + 1; j < n; j++)
- if (arr[j] < arr[min_idx])
- min_idx = j;
- swap(&arr[min_idx], &arr[i]);
- }
- }
- void ReadFile(string patch) {
- std::string line;
- std::ifstream in(patch); // окрываем файл для чтения
- if (in.is_open())
- {
- while (getline(in, line))
- {
- std::cout << line << std::endl;
- }
- }
- in.close();
- }
- int WriteToArr(string patch, int* mass) {
- int temp;
- std::ifstream fl(patch);
- int index = 0;
- if (!fl)
- {
- cout << "File not found" << std::endl;
- }
- else {
- while (fl >> temp) {
- mass[index] = temp;
- index++;
- }
- }
- fl.close();
- return index;
- }
- void Write(string path, int* arr, int size) {
- fstream f;
- f.open(path, fstream::in | fstream::out);
- if (f.is_open() == NULL)
- {
- cout << "error!";
- }
- for (int i = 0; i < size; i++)
- f << arr[i] << " ";
- f.close();
- }
- void PrintArr(int* arr, int size) {
- for (int i = 0; i < size; i++) {
- cout << arr[i] << "\t";
- }
- }
- int main() {
- setlocale(LC_CTYPE, "");
- string path10 = "input__10.txt";
- string path100 = "input__100.txt";
- string path1000 = "input__1000.txt";
- string path10000 = "input__10000.txt";
- int num;
- cout << "Кiлькiсть елементiв: ";
- cin >> num;
- int* mass = new int[num];
- for (int i = 0; i < num; i++)
- mass[i] = rand() % 47;
- Write(path10, mass, num);
- ReadFile(path10);
- int index = WriteToArr(path10, mass);
- cout << "\nВiдсортований масив:" << endl;
- auto start = chrono::high_resolution_clock::now();
- choicesSort(mass, index);
- auto finish = chrono::high_resolution_clock::now();
- PrintArr(mass, index);
- cout << "\nЧас сортування: " << chrono::duration_cast<chrono::duration<double>>(finish - start).count() << " секунд\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment